computability, complexity,...
TRANSCRIPT
![Page 1: Computability, complexity, feasibilitymarchi.ricerca.di.unimi.it/Teaching/WebComm2017/L2/Complexity.pdf · Computability, complexity, feasibility. Computability SThe computability](https://reader034.vdocuments.net/reader034/viewer/2022042521/5f703a65c55d9c401349a58c/html5/thumbnails/1.jpg)
S
Computability, complexity, feasibility
![Page 2: Computability, complexity, feasibilitymarchi.ricerca.di.unimi.it/Teaching/WebComm2017/L2/Complexity.pdf · Computability, complexity, feasibility. Computability SThe computability](https://reader034.vdocuments.net/reader034/viewer/2022042521/5f703a65c55d9c401349a58c/html5/thumbnails/2.jpg)
Computability
S The computability problem: is an algorithm computable? It has a solution?
S The halting problem: Does an algorithm finish?S Video: The Halting Problem
In order to answer these questions we need a
MACHINE MODEL
![Page 3: Computability, complexity, feasibilitymarchi.ricerca.di.unimi.it/Teaching/WebComm2017/L2/Complexity.pdf · Computability, complexity, feasibility. Computability SThe computability](https://reader034.vdocuments.net/reader034/viewer/2022042521/5f703a65c55d9c401349a58c/html5/thumbnails/3.jpg)
The Finite State Machine
S Its a model to describe a computational automa
S It has a finite number of possible internal state
S The transition from a state to another depends to the actual state and the value of the input
![Page 4: Computability, complexity, feasibilitymarchi.ricerca.di.unimi.it/Teaching/WebComm2017/L2/Complexity.pdf · Computability, complexity, feasibility. Computability SThe computability](https://reader034.vdocuments.net/reader034/viewer/2022042521/5f703a65c55d9c401349a58c/html5/thumbnails/4.jpg)
The Turing Machine
S It is a powerful model for describe computational machines
S It cosist of a finite state machine that can read and write to a potentially infinite memory ribbon.
S Any computational model can be reduced to the Turing machine.
![Page 5: Computability, complexity, feasibilitymarchi.ricerca.di.unimi.it/Teaching/WebComm2017/L2/Complexity.pdf · Computability, complexity, feasibility. Computability SThe computability](https://reader034.vdocuments.net/reader034/viewer/2022042521/5f703a65c55d9c401349a58c/html5/thumbnails/5.jpg)
Results on computability
S There exists some program that cannot be computed i.e. for which it cannot determine the value.
S There exists some program for which it cannot determine if it finish or not.
![Page 6: Computability, complexity, feasibilitymarchi.ricerca.di.unimi.it/Teaching/WebComm2017/L2/Complexity.pdf · Computability, complexity, feasibility. Computability SThe computability](https://reader034.vdocuments.net/reader034/viewer/2022042521/5f703a65c55d9c401349a58c/html5/thumbnails/6.jpg)
Complexity
S For computable programs the is another problem: how time and resources is it required for reach solution?
S For "large" problems, its not so important the exact time spent for resolve the problem but the "trend" respect the "size" of inputs.
![Page 7: Computability, complexity, feasibilitymarchi.ricerca.di.unimi.it/Teaching/WebComm2017/L2/Complexity.pdf · Computability, complexity, feasibility. Computability SThe computability](https://reader034.vdocuments.net/reader034/viewer/2022042521/5f703a65c55d9c401349a58c/html5/thumbnails/7.jpg)
O notation
S Given a problem P and an algorithm A that resolve P an input of "size" n for the problem P, the notation O(n) means that for "big" n the time for reach solution is O(n), for ex:S O(n)=k , constant time
S O(n)=n , linear time
S O(n)=n^2 , polinomial time à P problem
S O(n)=e^n , exponential time à NP Problem
![Page 8: Computability, complexity, feasibilitymarchi.ricerca.di.unimi.it/Teaching/WebComm2017/L2/Complexity.pdf · Computability, complexity, feasibility. Computability SThe computability](https://reader034.vdocuments.net/reader034/viewer/2022042521/5f703a65c55d9c401349a58c/html5/thumbnails/8.jpg)
P <> NP Assumption
S polinomial time algorithm has considered "easy" to computes, tough "big" n can be very hard to compute.
S not polinomial time algorithm, for exemple exponential time algorithm, has considered "hard" to computes, tough can be not so hard to compute for "little" exponents and "little" n.
S It is widely assumed (tough not proved) that exists NP problem that isnt P, i.e. that cannot be resolved "easily".
![Page 9: Computability, complexity, feasibilitymarchi.ricerca.di.unimi.it/Teaching/WebComm2017/L2/Complexity.pdf · Computability, complexity, feasibility. Computability SThe computability](https://reader034.vdocuments.net/reader034/viewer/2022042521/5f703a65c55d9c401349a58c/html5/thumbnails/9.jpg)
How to resolve a problem
S A programming paradigma it is a "way" to describe a solution method for a problem:S imperative languages: C, java, basic
S declarative languages: ASP
S functional: prolog
![Page 10: Computability, complexity, feasibilitymarchi.ricerca.di.unimi.it/Teaching/WebComm2017/L2/Complexity.pdf · Computability, complexity, feasibility. Computability SThe computability](https://reader034.vdocuments.net/reader034/viewer/2022042521/5f703a65c55d9c401349a58c/html5/thumbnails/10.jpg)
Client-Server Architecture
Clients
Server
Internet
![Page 11: Computability, complexity, feasibilitymarchi.ricerca.di.unimi.it/Teaching/WebComm2017/L2/Complexity.pdf · Computability, complexity, feasibility. Computability SThe computability](https://reader034.vdocuments.net/reader034/viewer/2022042521/5f703a65c55d9c401349a58c/html5/thumbnails/11.jpg)
Client constraints
S bandwidth (mainly smartphone)
S battery (mainly smartphone)
S software capability (OS, supported apps)
S CPU
S RAM
S Disk space
Your app/site must be designed in order to match the expected (and acceptable) constrains on client side
![Page 12: Computability, complexity, feasibilitymarchi.ricerca.di.unimi.it/Teaching/WebComm2017/L2/Complexity.pdf · Computability, complexity, feasibility. Computability SThe computability](https://reader034.vdocuments.net/reader034/viewer/2022042521/5f703a65c55d9c401349a58c/html5/thumbnails/12.jpg)
Server constraints
S bandwidth (mainly smartphone)
S Number of contemporaneous sessions
S Disk space
S Cost
S CPU & RAM (less important for a common website)
The server "size" must be designed in order to balance the tradeoff between user experience and cost