Download presentation
Presentation is loading. Please wait.
Published byWillis Ward Modified over 9 years ago
1
CompSci 1 11.1 What can be computed l What class of problems can be solved? ä Google Datacenter, Desktop computer, Cell phone, pencil? ä Alan Turing proved some things, hypothesized others Halting problem, Church-Markov-Turing thesis l What class of problems can be solved efficiently? ä Problems with no practical solution what does practical mean? ä Problems for which we can’t find a practical solution solving one solves them all
2
CompSci 1 11.2 Schedule students, minimal conflicts l Given student requests, available teachers ä write a program that schedules classes ä Minimize conflicts l Add a GUI too ä Web interface ä … I can’t write this program because I’m too dumb
3
CompSci 1 11.3 One better scenario I can’t write this program because it’s provably impossible
4
CompSci 1 11.4 Another possible scenario I can’t write this program but neither can all these famous people
5
CompSci 1 11.5 Types of Problems l Tractable ä Problems that can be solved by a computer in a “reasonable” amount of time. l Intractable ä Problems that can’t be solved by a computer in a “reasonable” amount of time, ä But can be solved eventually. l Non-computable ä Problems that can never be solved by a computer.
6
CompSci 1 11.6 Is there a path from Ann to Bob? AnnJoe Jim John Kim Jen Bob
7
CompSci 1 11.7 Is there a path from Ann to Bob? AnnJoe Jim John Kim Jen Bob Suzy Kyle Frank Josh Jen Brett Ben Julie Lucy
8
CompSci 1 11.8 How much oil can flow?
9
CompSci 1 11.9 How much oil can flow?
10
CompSci 1 11.10 Can you color this map with 4 colors?
11
CompSci 1 11.11 Can you color this map with 3 colors?
12
CompSci 1 11.12 Can you color this map with 3 colors?
13
CompSci 1 11.13 Can you color this map with 3 colors?
14
CompSci 1 11.14 Dealing with hard problems l Random Numbers ä Can “expect” to solve some in reasonable time l Approximation ä Can guarantee that we’re “close” to the right answer l Parallel Computers?
15
CompSci 1 11.15 Non-Computable Problems l Problems that cannot be solved by a computer ever
16
CompSci 1 11.16 Not impossible, but impractical l Towers of Hanoi ä How long to move n disks? l What combination of switches turns the light on? ä Try all combinations, how many are there? ä Is there a better way?
17
CompSci 1 11.17 Travelling Salesperson l Visit every city exactly once l Minimize cost of travel or distance l Is there a tour for under $2,000 ? less than 6,000 miles? l Is close good enough? Try all paths, from every starting point -- how long does this take? a, b, c, d, e, f, g b, a, c, d, e, f, g...
18
CompSci 1 11.18 Complexity Classifications l This route hits all cities for less than $2,000 --- verify properties of route efficiently. l Hard to find optimal solution Pack trucks with barrels, use minimal # trucks Ideas? Problems are the “same hardness”: solve one efficiently, solve them all
19
CompSci 1 11.19 Are hard problems easy? l P = easy problems, NP = “hard” problems ä P means solvable in polynomial time Difference between N, N 2, N 10 ? ä NP means non-deterministic, polynomial time guess a solution and verify it efficiently l Question: P = NP ? Rich or famous? ä if yes, a whole class of difficult problems can be solved efficiently---one problem is reducible to another ä if no, none of the hard problems can be solved efficiently ä showing the first problem was in NP was an exercise in intellectual bootstrapping (1971)
20
CompSci 1 11.20 Theory and Practice l Number theory: pure mathematics ä How many prime numbers are there? ä How do we factor? ä How do we determine primeness? l Computer Science ä Primality is “easy” ä Factoring is “hard” ä Encryption is possible top secret public-key cryptography randomized primality testing
21
CompSci 1 11.21 Halt or not l Does the following code eventually terminate?... while (x > 1): if (x > 2): x = x – 2 else: x = x + 2 l What if x is 8? How about 9?
22
CompSci 1 11.22 Halt or not l Does the following code eventually terminate?... while (x > 1): if (x % 2 == 0) x = x / 2 else x = 3*x + 1 l What if x is 8? How about 7? How about all numbers > 0?
23
CompSci 1 11.23 If you start this program, will it ever stop running? public class Client { public static void main(String[] args) { if(args.length != 2) { System.out.println("Usage: vbj Client \n"); return; } String carrierName = args[0]; String aircraftName = args[1]; org.omg.CORBA.Object carrier = null; org.omg.CORBA.Object aircraft = null; org.omg.CORBA.ORB orb = null; try { orb = org.omg.CORBA.ORB.init(args, null); } catch (org.omg.CORBA.SystemException se) { System.err.println("ORB init failure " + se); System.exit(1); } { // scope try { carrier = orb.bind("IDL:Ship/AircraftCarrier:1.0", carrierName, null, null); } catch (org.omg.CORBA.SystemException se) { System.err.println("ORB init failure " + se); System.exit(1); } org.omg.CORBA.Request request = carrier._request("launch"); request.add_in_arg().insert_string(aircraftName); request.set_return_type(orb.get_primitive_tc(org.omg.CORBA.TCKind.tk_objref)); request.invoke(); aircraft = request.result().value().extract_Object(); } { // scope org.omg.CORBA.Request request = aircraft._request("codeNumber"); request.set_return_type(orb.get_primitive_tc(org.omg.CORBA.TCKind.tk_string)); request.invoke(); String designation = request.result().value().extract_string(); System.out.println ("Aircraft " + designation + " is coming your way"); } { // scope org.omg.CORBA.Request request = aircraft._request("attitude"); int altitude = 10000; org.omg.CORBA.Any ioAltitude = request.add_inout_arg(); ioAltitude.insert_long(altitude); } try { carrier = orb.bind("IDL:Ship/AircraftCarrier:1.0", carrierName, null, null); } catch (org.omg.CORBA.SystemException se) { System.err.println("ORB init failure " + se); System.exit(1); } org.omg.CORBA.Request request = carrier._request("launch"); request.add_in_arg().insert_string(aircraftName); request.set_return_type(orb.get_primitive_tc(org.omg.CORBA.TCKind.tk_objref)); request.invoke(); aircraft = request.result().value().extract_Object(); } { // scope org.omg.CORBA.Request request = aircraft._request("codeNumber"); request.set_return_type(orb.get_primitive_tc(org.omg.CORBA.TCKind.tk_string)); request.invoke(); String designation = request.result().value().extract_string(); System.out.println ("Aircraft " + designation + " is coming your way"); } { // scope org.omg.CORBA.Request request = aircraft._request("attitude"); int altitude = 10000; org.omg.CORBA.Any ioAltitude = request.add_inout_arg(); ioAltitude.insert_long(altitude); String direction = "headup"; request.add_in_arg().insert_string(direction); request.invoke(); altitude = ioAltitude.extract_long(); System.out.println ("Aircraft is heading up to " + altitude + " Feet."); } } }
24
CompSci 1 11.24 The halting problem: writing DoesHalt def doesHalt(progname, s): returns true if progname halts given s as input, false otherwise if (doesHalt(f,s)): print "does halt" else: print "does not halt" l Programs that read program l A compiler is a program that reads other programs as input ä Can a word counting program count its own words? The doesHalt function might simulate, analyze, … ä One program/function that works for any program/input
25
CompSci 1 11.25 Consider this code // f is a filename of this program if (doesHalt(f,f)): while True: # do nothing forever return 0; We want to show writing doesHalt is impossible ä Proof by contradiction: ä Assume possible, show impossible situation results
26
CompSci 1 11.26 Noncomputable problems l What other questions can we not answer? ä Do two programs do the same thing? ä Do programs have any bugs? ä Do programs do what they’re supposed to do? l Halting Problem. l Program Equivalence. l Optimal Data Compression. l Virus Identification. l Impossible to write Pythonprogram to solve any of these problem!
27
CompSci 1 11.27 The exam l Tuesday, April 28, 7pm-10pm in Soc Sci 136 l Open book/open note l ~50% multiple choice/short answer l Cumulative l By noon on Sunday, April 26: ä All grades up (except final project) ä Midterm solutions out ä Grade problems: Submit Blackboard assignment issues l Final grades up Friday, May 1 l Available by appointment throughout reading period and exam week l Help session Wednesday in class
28
CompSci 1 11.28 Questions for the Exam l What is Computer Science? What does a Computer Scientist do? l How many bits are required to represent a population? l How is a webpage designed and deployed? l Why does digital media and the Internet present challenges for intellectual property law? l How do you keep secrets with computers? l What is better: a faster computer or a faster algorithm? l How do you write a program to filter a sound or image? l Google indexes A LOT of websites. How does it return an answer to a search so quickly? l How can a system predict what item you would like?
29
CompSci 1 11.29 Essential concepts There is beauty at all levels of sophistication and all levels of abstraction. - David A. Blackwell If life were really fair, algebra would actually come in handy - Amstel Light commercial
30
CompSci 1 11.30 Laws governing computer science l What’s computable? l Which algorithm, program, or processor is faster? l Moore’s Law (1965) ä The number of transistors per area on a chip double every 18 months ä Density of transistors => more functionality and speed l How about multiple computers? l Amdahl’s Law (1967) ä Given: fraction ( s ) of work to be done is serial (i.e. isn’t parallelizable) ä Maximum speedup with infinite number of processors is 1/s
31
CompSci 1 11.31 What are computers for? l Simulation l Communication among people ä Storage = communication across time l Control ä Get physical ä Get real (time) ä Get mobile
32
CompSci 1 11.32 Application l Simulation ä Models of the real world (e.g. planets, cities, molecules) l Communication among people ä Information at your fingertips ä Telepresence ä Home l Control ä Robots ä Software agents
33
CompSci 1 11.33 What’s next l CompSci 4 ä Alice ä Games & Java l CompSci 6 ä Assumes knowledge of loops & arrays l CompSci 82 ä IP 2 l Seminars ä Google ä Other topics l Interdisciplinary minor ä Computational Biology & Bioinformatics ä Computational Economics
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.