Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Complessità computazionale, Appunti di Informatica

4 pagine fitte di appunti presi con la tastiera sulla complessità computazionale: programma di informatica 5ª superiore. Gli appunti esprimono l’essenziale rimanendo sufficienti come principale fonte di studio per la verifica. Scritti in maniera semplice.

Tipologia: Appunti

2025/2026

In vendita dal 26/02/2026

mario-aa2
mario-aa2 🇮🇹

8 documenti

1 / 5

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Complessità Computazionale:
Capire come valutare e confrontare la complessità dei problemi!
Obiettivo finale: dividere i problemi in classi di complessità!
!
Gli algoritmi risolvono questi problemi!
Problema= astratto, può avere descrizione generica (es. “ordinamento di un vettore”)!
Istanza= entra nello specifico, caso in cui viene specificato l’input (es.“ordina QUESTO vettore in particolare”)!
Cardinalità dell’input = parametro che specifica quanto è complesso l’input in base alla sua dimensione !
!
Un algoritmo risolve un problema se applicato al problema lo risolve in ogni sua istanza: soluzione corretta per
ogni istanza da dare in un tempo finito!
!
Criteri per ecacia dell’algoritmo:!
Devono essere oggettivi e misurabili!
!
Soggettivi:
Semplicità di comprensione!
Accessibilità/usabilità dell’interfaccia utente (UI)!
Bellezza grafica dell’UI!
!
Oggettivi:!
Complessità temporale!
Complessità spaziale (memoria occupata)!
Complessità di I/O!
complessità trasmissione!
!
noi tratteremo quasi esclusivamente quella temporale !
!
Complessitá di tempo:
Non sarebbe oggettivo calcolarlo con un cronometro perché la velocità di esecuzione dipende anche dalla
potenza del computer.!
=> NON si calcola in secondi!
!
Numero dei passi base in funzione della dimensione dell’input!
!
Anziché vedere il tempo contiamo il numero di operazioni impiegate
Unità di misura = passo base (n)
-> semplificazione secondo la quale ogni operazione ci impiega lo stesso tempo (assegnazione, I/O…)!
!
Scriviamo la complessità come funzione che mantiene la n come parametro:!
!
!
!
!
!
!
!
!
!
!
!
non chiede come calcolarla
pf3
pf4
pf5

Anteprima parziale del testo

Scarica Complessità computazionale e più Appunti in PDF di Informatica solo su Docsity!

Complessità Computazionale:

Capire come valutare e confrontare la complessità dei problemi Obiettivo finale: dividere i problemi in classi di complessità Gli algoritmi risolvono questi problemi

  • Problema= astratto, può avere descrizione generica (es. “ordinamento di un vettore”)
  • Istanza= entra nello specifico, caso in cui viene specificato l’input (es.“ordina QUESTO vettore in particolare”) Cardinalità dell’input = parametro che specifica quanto è complesso l’input in base alla sua dimensione Un algoritmo risolve un problema se applicato al problema lo risolve in ogni sua istanza: soluzione corretta per ogni istanza da dare in un tempo finito Criteri per efficacia dell’algoritmo: Devono essere oggettivi e misurabili Soggettivi:
  • Semplicità di comprensione
  • Accessibilità/usabilità dell’interfaccia utente (UI)
  • Bellezza grafica dell’UI Oggettivi:
  • Complessità temporale
  • Complessità spaziale (memoria occupata)
  • Complessità di I/O
  • complessità trasmissione noi tratteremo quasi esclusivamente quella temporale

Complessitá di tempo:

Non sarebbe oggettivo calcolarlo con un cronometro perché la velocità di esecuzione dipende anche dalla potenza del computer. => NON si calcola in secondi Numero dei passi base in funzione della dimensione dell’input Anziché vedere il tempo contiamo il numero di operazioni impiegate

Unità di misura = passo base (n)

-> semplificazione secondo la quale ogni operazione ci impiega lo stesso tempo (assegnazione, I/O…) Scriviamo la complessità come funzione che mantiene la n come parametro: non chiede^ come^ calcolarla

Complessità Asintotica:

K

log k + n n log(n) n^k k^n n^n Legge di Moore : nella tecnologia la crescita della potenza di calcolo è esponenziale : Se guardo come cresce la dimensione dell’input con la crescita della potenza di calcolo, nel caso polinomiale la crescita della potenza di calcolo è maggiore ed è solo una questione di tempo affinché la tecnologia possa risolvere problemi polinomiali. Il caso esponenziale cresce con un +log che è oggettivamente troppo pesante per essere superato dalla potenza di calcolo. Cioè: potenza di calcolo cresce abbastanza da gestire un polinomiale ma non altrettanto per gestire un esponenziale

Notazioni :

Si usano notazioni specifiche con significati matematici

  1. O-GRANDE: Una certa funzione è O-grande di qualcosa se O-grande indica un limite di complessità al nostro algoritmo
  • Teorema della somma: se ho due blocchi di codice in sequenza la complessità totale è pari a quella del più . complesso
  • Teorema del prodotto: se due blocchi di codice sono innestati la complessità è il prodotto delle complessità. . (es. for dentro un for)
  1. OMEGA-GRANDE: Come O-grande ma col >
  2. TETA-GRANDE: Compreso: sia O-Grande che Omega-Grande Es. un vettore grande dà una grande complessità. Quando guardiamo la complessità di un algoritmo guardiamo il caso peggiore. Anche il caso medio è talvolta un caso interessante. in place = se stai ordinando il vettore usando solo il vettore, e non usandone altri veloce (^) trattabile lentotrattabile^ e intrattabile saperledefinire I n^ E^0 91h1^ per^

n o

I c^ r^ oro (^) scale c^ geni turn c (^) GLI E^ SIN (^) crighi => gerarchia degli infiniti : + sali nella gerarchia e + è complesso e lento

Problema P vs NP: Stabilire se esiste la distinzione tra P o NP: Sono uguali o P è contenuto in NP? Nessuno lo ha ancora dimostrato perché dimostrare qualcosa è un problema NP, e infatti provare che una dimostrazione sia vera è abbastanza facile. NP completo: se tutti gli altri problemi NP possono essere ricondotti ad esso. Problema SAT : Problema della soddisfacibilità, dimostrato

  • Riesco a trovare dei valori booleani in grado di risolvere una certa espressione logica (cioè dare true)? Devo verificare con ogni possibile combinazione
  • P-space: spazio polinomiale, ci sono problemi che richiedono uno spazio di memoria troppo grande per essere risolti
  • Classe BQP: problemi risolvibili probabilisticamente da un computer quantistico
  • NP hard: classe difficile almeno quanto NP La questione P/NP non riguarda solo i computer, ma la natura stessa di spazio e tempo, permetterebbe di capire se comprendere una cosa equivale a creare una cosa -> si suppone di no Classe EXP o a TEMPO-ESPONENZIALE: Molti problemi non si risolvono in tempo t ma a tempo esponenziale Es. negli scacchi capire la prossima mossa migliore è un tempo exp. Algoritmi probabilistici: Sistemi per risolvere in tempi brevi i problemi. Utilizzati perciò algoritmi probabilistici. Prendono una decisione con una componente casuale: se devo scegliere tra A o B potrebbe esserci una prob. di prendere A piuttosto che B -> elementi di casualità
  1. Numerici : dato un intervallo risultato approssimato con una certa confidenza, più volte eseguo l’algoritmo più è affidabile
  2. Di Monte Carlo : fornire risultato esatto con alta probabilità. Più si esegue l’algoritmo più è attendibile il risultato
  3. Las Vegas : fornire risultato esatto in un tempo probabilistico , cioè ha una certa probabilità che la risposta venga data in un certo tempo. Per stare nei tempi stabiliti potrebbe anche non rispondere. Classe BPP: “Tempo polinomiale probabilistico con errore limitato” Come dev’essere fatto l’algoritmo per essere BPP? Ci deve dare l’ errore al massimo un terzo delle volte Se lo dà un mezzo delle volte è PP Classe BQP: Come BPP ma usa una macchina quantistica. Prob. Corretta un terzo delle volte ed errata al massimo un terzo. Macchine quantistiche: i Bit non sono 0/1 ma sono Q-Bit con uno stato d’indeterminazione, con particelle che se non osservate hanno appunto uno stato indeterminato. Se interferisci con la particella, senza osservarla, puoi variare il suo stato di 1 o più Q-Bit.
  • Non si sa se BQP contenga problemi NP-complessi Algoritmo di Shor: alg. quantistico (per fattorizzare e fare logaritmo di un numero) SAT esistono^ valoridi^ A^ e^ Bpercui^ Estrne^ esempio di^ NP^ completo

vero

esempi dico^ no CO NP (^) E A V B true ii.s.at

Ie

i.inti.eeb