



















Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Sintesi delle strutture dati in informatica affrontate negli esami di Algoritmi e Strutture dati. La sintesi è una sintesi generale, non legata a nessun ateneo. Utile per ripassare rapidamente i concetti base dell'esame e le complessità dei relativi algoritmi.
Tipologia: Schemi e mappe concettuali
1 / 27
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!




















>>> Fondamenti di Informatica / Tecniche di Programmazione / Intelligenza Artificiale <<< Complessità temporale = numero complessivo dei passi di calcolo, a loro volta funzione della dimensione dei dati in ingresso. Per approssimare possiamo assumere il costo temporale unitario per ogni operazione Complessità spaziale = utilizzo delle risorse Esistono 3 casi. Istanza I del problema P: Best = tempo sulle istanze che comportano meno lavoro all’algoritmo Worst = tempo sulle istanze che comportano più lavoro all’algoritmo Medium = tempo sulle istanze tipiche del problema O: f(n) ≤ c • g(n) Ω: f(n) ≥ c • g(n) θ: c1 • g(n) ≤ f(n) ≤ c2 • g(n) O(g1 + … + gn) = O(max{g1 … gn}) O(g1 • … • gn) = O(O(g1) • … • O(gn)) Algoritmi Ricorsivi Identifichiamo l’equazione di ricorrenza che descrive la successione dei termini dell’algoritmo: T(n) = c + T(n/2) se n>1 oppure 1 se n = 1 Teorema Master = fornisce una soluzione asintotica ad una famiglia di relazioni di ricorrenza
○ (^) Select Sort
○ ○ ○ Merge Sort Quick Sort Heap Sort Creation of the Heap from the Vector
Algorithm:
● ● ● ● – – Preordine / Ordine / Postordine Alberi pesati = gli archi hanno un costo Completezza: se la soluzione (non è detto debba essere ottima) esiste e viene trovata sicuramente Ottimalità: trovo sempre la soluzione ottima OPEN = lista nodi da visitare CLOSED = lista nodi visitati b (branching factor) = massimo numero di figli che un nodo può avere d (depth) = livello al quale trovo la soluzione m (massima profondità) = profondità massima dell’albero Algoritmi di ricerca: Brute Force = ricerca esaustiva su tutte le possibili soluzioni Ricerca NON informata = basati sulla sola conoscenza del problema BFS = Completa se lo spazio di ricerca è finito. Ottima se il costo di ogni arco è lo stesso. Tempo e Spazio O(b^d) Ricerca a costo uniforme = espando prima il nodo con il costo del cammino minimo. Completa se il costo di un arco è ≥ di un epsilon
MBA* (Memory Bounded A*) = quando la memoria è satura, cancella la soluzione con f(n) maggiore. Completa se la soluzione può essere contenuta in memoria (se il cammino è troppo piccolo). Ottima se è raggiungibile Ricerca locale = consulto un intorno. Posso usare una funzione di costo (da minimizzare) o obiettivo (da massimizzare) Hill climbing = mi muovo nella direzione del gradiente così da trovare lo stato che massimizza la funzione obiettivo Stocastico = tra tutte le mosse che seguono il gradiente, scelgo a caso con Riavvio Casuale = tanti Hill Climbing con stati iniziali casuali. Ricerche statisticamente indipendenti Simulated Annealing = Hill Climbing che accetta mosse peggiorative per poter uscire da eventuali massimi lovali Beam Search = genero casualmente K stati e K successori. Se la soluzione è tra questi allora ho finito, altrimenti continuo a generare Alberi binari Il sottoalbero sinistro di un nodo contiene solo nodi con chiavi inferiori alla chiave del nodo. Il sottoalbero destro di un nodo contiene solo nodi con chiavi maggiori della chiave del nodo. Anche il sottoalbero sinistro e quello destro devono essere un albero di ricerca binario. Inserimento O(n) = se l’elemento da inserire è maggiore del nodo in
Alberi da gioco Rappresentare gli stati di un gioco a interazione strategica. I nodi dell'albero identificano i diversi stati del gioco mentre gli archi le possibili scelte/decisioni (mosse) che gli agenti possono effettuare a partire da un determinato nodo
(situazione di gioco). Algoritmo min-max = algoritmo ricorsivo per la ricerca della mossa migliore in un gioco a somma zero che si svolge tra due giocatori