What Computers Can’t Do For You Catherine C. McGeoch Amherst College February 2005 OR/MS and Computer Science: Connections Marketing Finance Operations Research Management Science Systems and Languages Theory Softwar e Problem Domains Three Themes (with variations) Theory: Software Engineering: You can’t always get what you want. (Jagger) Everything Put Together Falls Apart. (Simon) Policy: Oops!..I did it again. (Spears) We’re going wrong. (Cream) Theory and Practice and OR... Theory My Research Practice What is experimental algorithmics? Hockey Science: Predict the ingame puck velocities generated by new stick technologies. Isolate Components Control Key Factors Attach Probes Complexity Theory World View Interesting non-problems Unsolvable problems Intractable problems Tractable problems An Unsolvable Problem The Halting Problem: Take a program P and an input I for P. Will P go into an infinite loop, or will it eventually halt? Program H: Reads P and I, computes, always correctly answers yes or no, and never itself goes into an infinite loop. Theorem: Program H cannot exist. Intractable: Can be solved, but not efficiently Algorithm Operations 120 100 80 Linear Quadratic Cubic Exponential 60 40 20 0 10 20 30 40 50 60 Input Size Algorithm time as a function of input size: NP-Hard and NP-Complete Problems Unsolvable Intractable Tractable Which? Hundreds of problems, including many from Operations Research NP-Completeness ``I can’t find an efficient algorithm, I guess I’m just too dumb.’’ NP-Completeness ``I can’t find an efficient algorithm, because no such algorithm is possible!’’ NP-Completeness ``I can’t find an efficient algorithm, but neither can all these famous people.’’ NP-Completeness Humbug! Try harder! Now get out of my office! Lessons from Experimental Algorithmics NP-Completeness Theory is... Pessimistic. Worst-case assumptions about input; your input may be fine. Usually about finding optimal solutions. Almost-optimal might be tractable. Not the final word.... With luck and compromise, algorithm research and experimental algorithmics can give you ... Constructive heuristics Approximation Algorithms Heuristic search ...Solutions to your problems. Example: Traveling Salesperson Problem What is the biggest problem you can solve in one day of computing? Theory: about n=20 cities, worst case. Practice: Some instances of size n>10,000 have been solved. Theme from Theoretical Computer Science You can’t always get what you want ~ but if you try sometimes ~ you might find ~ you get what you need. Oh yeah, hey hey hey, oh ... Software Engineering • Methods for efficient development of large software systems. • Ensure reliability, robustness, safety. • Predict development cycles and times. Software Engineering But accidents happen! catless.ncl.ac.uk/Risks Royal Australian Navy Frigate backs German TollCollect system charges trucks not on the toll onto rocks after the computer road. overrode manual command. 1200 gallons of gas sold at New kinds of .19/gallon. spoofing possible Friendly fire from Patriot missile. with DNS policy Long-standing errors found in the change. national urology medical student Serious security flaws found match system; code was redone in Windows Eudora. this year. Records database (35k records) stolen; at least 50 cases of identity fraud so far. In-car computers corrupted by virus via cell phones. catless.ncl.ac.uk/Risks Royal Australian Navy Frigate backs German TollCollect system charges trucks not on the toll onto rocks after the computer road. overrode manual command. 1200 gallons of gas sold at New kinds of .19/gallon. spoofing possible Friendly fire from Patriot missile. with DNS policy Long-standing errors found in the change. national urology medical student Serious security flaws found match system; code was redone in Windows Eudora. this year. Records database (35k records) stolen; at least 50 cases of identity fraud so far. In-car computers corrupted by virus via cell phones. And that’s just since Sunday... Worse things have happened... Therac-14. Six people die from radiation overdoses from cancer therapy machine. Woman kills children, attempts suicide, after erroneous HIV notification. Industrial robots kill workers. Flight from New York to Brazil crashes into mountain due to human/computer navigation error. U.S. Navy mistakenly shoots down Iranian passenger plane. Lessons Software fails when ported inappropriately to new applications. Some error-detection problems are unsolvable. Many are intractable. Humans should not override computer controls. Computers should not override human controls. Theme from Software Engineering Uh, huh, spare your heart ~ everything put together sooner or later falls apart ~ there’s nothing to it, nothing to it ~ you can cry ~ you can lie ~ for all the good it’ll do you. Policy: Laws with Unintended Consequences CAN-SPAM Act is blamed for increase in spam from 50 to 80 percent of emails. DMCA prohibits actions that are legal with non-electronic media (like books and papers). Patriot Act allows unprecedented electronic intrusions into privacy. Electronic spyware laws are different from standard spying laws. Theme for Policy-Makers Please open your mind ~ see what you can find ~ I found out today ~ we’re going wrong ~ we’re going wrong ~ we’re going wrong. Conclusions • Not all problems can be solved by computers. • Even when they can be, software is brittle. • Computers can’t make policy. Neither can policy-makers. • Have a nice day. But things are not all bad. The future is what we make of it ... Information Technology has the potential to make our lives safer, healthier, and more enjoyable and to enrich our understanding of nature. World Wide Web Online Communities Gutenberg Project Safer highways Safer air travel Human Genome Project Drug discovery cycle Assistive Technologies iPOD A future that includes improvements in our quality of life through applications of IT looks very bright. --William Wulf