Introduzione all'intelligenza artificiale Flashcards
Cos’è il test di Turing?
Il test di Turing è un test nel quale si cerca di capire quale dei due interlocutori, che sono disposti in stanze diverse, sia un essere umano e chi sia una macchina
Cos’è un agente razionale?
E’ un agente che per ogni sequenza di percezioni massimizza le prestazioni, basandosi su percezioni passate e conoscenza pregressa
Cos’è la descrizione PEAS?
Serve per descrivere un problema e significa Performance, environment, actuators, sensors
Quali sono le principali proprietà dell’ambiente?
L’osservabilità, numero di agenti, predizione dei cambiamenti, episodico o sequenziale, temporale, caratterizzazione dei valori e lo stato di conoscenza dell’agente
Quali sono i tipi di agente?
Agenti basati su tabella, agenti reattivi semplici, agenti basati su modello, agenti con obiettivo, agenti con valutazione di utilità, agenti che apprendono
Come può essere formulato un problema?
- Stato iniziale
- Possibili azioni nello stato corrente
- Modello di transizione
- Test obiettivo
- Calcolo del costo del cammino
Il problema dell’itinerario e il problema dell’aspirapolvere sono problemi di che tipo?
Problemi di ricerca
Da che cosa è composto un nodo negli algoritmi di ricerca?
- Stato del nodo
- Il nodo padre
- la transizione tra padre e nodo corrente
- il costo del cammino dal nodo di partenza fino al nodo corrente
Che cos’è la frontiera e come può essere implementata?
LA frontiera è l’insieme dei nodi ancora da visitare e può essere implementata come una FIFO, una LIFO o una coda con priorità
Fai alcuni esempi di strategie di ricerca non informate
BFS, DFS, UCS, DLS e IDS
Come risolviamo i problemi di ridondanze e cicli nelle ricerche ad alberi?
- Eliminare il padre dalla frontiera
- Controllare che i nodi successori non siano anche antenai
- Salvarsi in memoria tutti i nodi già visitati
Anlisi della BFS
Strategia sia completa che ottimale con complessità temporale e spaziale uguale a O(b^d) (la complessità spaziale è molto alta) con b fattore di ramificazione e d profondità
Analisi della DFS
Strategia nè completa nè ottimale (perchè si possono creare loop), complessità temporale O(b^m) con b fattore di ramificazione e m lunghezza massima dela cammino e complessità spaziale O(b*m)
Come vengono gestite le code in BFS e DFS?
La BFS utilizza una FIFO, mentre la DFS utilizza una LIFO
Qual è la differenza tra DFS alberi e DFS grafi?
DFS grafi perde il vantaggio in memoria ma è un algoritmo completo su un insieme finito
Qual è il vantaggio della DFS con backtracking?
Salva sullo stack lo stato iniziale di un percorso e in caso di fallimento può tornare lì, occupando in memoria solamente O(m)
Cos’è la DLS
E’ la ricerca a profomdità limitata, si pone un limite l alla profondità massima e in questo caso è completa, con stessa complessità della DFS
Cos’è IDS?
Ricerca approfondita a partire dalla DLS, ovvero si va a aumentare ad ogni iterazione il valore di l (profondità), in questo modo la strategia è completa e ottimale
Su cosa scegliamo se ricercare in avanti o indietro?
In base a b, il fattore di ramificazione
In cosa consiste la bdir?
Effettua sia una ricerca in avanti che una all’indietro e quindi è sicuramente completa e ottimale con complessità di tempo e spazio O(b^d/2)
In cosa consiste la UC?
La ricerca uniforme è una BFS con pesi tutti uguali, la coda è una priority queue ordinata in base al costo del cammino (prima quelli meno costosi). Il goal vieste testato prima del ciclo per creare la frontiera del nodo che stiamo guardando e subito dopo il pop dalla frontiera.
E’ una stretia completa e ottimale a patto che il costo degli archi sia maggiore di 0 e la complessità spaziale e temporale è O(b^1+[C/alpha]), con C/alpha numero di mosse al caso pessimo
In cosa consiste la ricerca euristica?
Dato che la ricerca esausitiva bruteforce è spesso impraticabile, si usa la conoscenza euristica per scremare le varie possibilità con una funzione f(n)=g(n)[costo del cammino] + h(n)[funzione tipo distanza in linea d’aria]
Cosa si intende per BFH
La best first heuristic è simile a una UC ma usa la funzione eurstica f(n) per ordinare la priority queue e la funzione h(n) corrisponde al valore stimato da n al goal
Che cos’è il GBF?
Il greedy best first è un BFH che mette f(n) = h(n) e quindi si espande sempre verso il nodo più vicino (non tenendo conto del costo)
Descrivi l’algoritmo A
A è un best first ma se h(n)=0 ottengo un UC, se g(n)=0 ottengo un GBF. E’ completo se e solo se g(n)>=d(n)*alpha con alpha costo minimo dell’arco
Descrivi brevemente l’algoritmo A*
A* è un UC con f(n) = g(n) + h(n) per ordinare la coda. Possiamo effettuare una sottostima o una sovrastima della funzione ideale f(n) = g(n) + h(n). Se una euristica è ammissibile, A è ottimale sugli alberi, ma per garantire l’ottimalità sui grafi bisogna garantire la monotonicità (o consistenza)
Quali sono i principali vantaggi di A*?
A* non espande i nodi con f(n)>C* ovvero del costo della soluzione ottima, si può eseguire il pruning per risparmiare memoria (che comunque rimane O(b^d+1)) e velocizzare ed è garantita l’ottimalità