![]() ![]() |
| |||||||||
| Hotspots: Slides and Code TA Corner Comments? Announcements FAQ Static Webspace | ||||||||||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
| Very nice! Anything else important that Alan Turing did? Mark Guzdial |
| Song problem: You have some 30-60 bits of sound of various lengths. Write a program to create every combination of these sounds, trying to find a song (a) shorter than 2 mins 30 secs for optimal air play and (b) with a good amount of volume change to sound interesting. Mark Guzdial |
| Angela Liang found this great page on the Traveling Salesman Problem. http://www.math.princeton.edu/tsp/ Mark Guzdial |
| Nice! Mark Guzdial |
| You're right, Katie! I hadn't even realized that people were saying/typing TurNing. It's Turing. Bell Communications Research made a joke of it years ago – they built a video computing system that let you "visit" from place-to-place with high-resolution video and audio. They called it a "Turing Machine". (Turing's definition of a computer was called a "turing machine".) "Computer humor" :-) Mark Guzdial |
| Traveling Salesman has a known solution. You can write a program to solve Traveling Salesman – you can actually do it using only as much Python as we've talked about in this class. (You'd use WHILE or Recursion alot, though, so it'd be hard.) But for any reasonably sized problem, it won't get done in a reasonable amount of time. Did you visit the page that Angela Liang found for us? Somebody solved a Traveling Salesman problem with something like 13,000 cities in Germany. He did it using 110 computers, and it took 26 years of processing time (which may actually mean more like 6 months continuous on the computers, with some cost in time to move partial results from one computer to another). That's a huge cost. The equation part is the equation for the number of steps that it'll take to solve the problem, the "big O". Traveling Salesman is basically O(n!). For just 10 cities, the computer would execute roughly 3,628,800 steps. Not terrible. For 30 cities, that's 265,252,859,812,191,058,636,308,480,000,000 steps. The problem grows insolvable in reasonable time very quickly. The Halting Problem, on the other hand, has no known solution. In fact, Alan Turing proved that you can't solve the Halting Problem in the general case. You can't write a program that can always tell if another program will halt. Mark Guzdial |
| Intractable are problems that we know can't be made faster. We don't know that Traveling Salesman can't be made faster. Maybe it can. Maybe someone will figure out a really cool trick that makes it solvable in O(n^4) or something like that. But we don't know yet. We call those problems that seem intractable but we're not sure yet "NP". Halting Problem, by the way, is in none of these. It's just plain not solvable. Mark Guzdial |
| It turns out that it's provable. I don't think I could explain the proof even if I really understood it, but the reality is that mathemagicians have proven that it can't be made faster. So far, no one has made such a proof of Traveling Salesman. Mark Guzdial |