Ricerca informata. Scelta dell euristica



Похожие документы
Parte I. Prima Parte

Page 1. Evoluzione. Intelligenza Artificiale. Algoritmi Genetici. Evoluzione. Evoluzione: nomenclatura. Corrispondenze natura-calcolo

Ricerca Operativa A.A. 2007/2008

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P P P P P P < P 1, >

Intelligenza Artificiale

Ottimizzazione Multi Obiettivo

e-dva - eni-depth Velocity Analysis

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Automazione Industriale (scheduling+mms) scheduling+mms.

SPC e distribuzione normale con Access

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Tipi primitivi. Ad esempio, il codice seguente dichiara una variabile di tipo intero, le assegna il valore 5 e stampa a schermo il suo contenuto:

Ricerca non informata in uno spazio di stati

Appunti sulla Macchina di Turing. Macchina di Turing

DIMENSIONI CRITERI INDICATORI

Algoritmi euristici per il caricamento e l instradamento di una flotta di bisarche

Esercizi Capitolo 6 - Alberi binari di ricerca

Esercizi su. Funzioni

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

REGOLE PER L ESAME (agg.te settembre 2015)

I motori di ricerca. Che cosa sono. Stefania Marrara Corso di Sistemi Informativi

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Domande a scelta multipla 1

IL MARKETING E QUELLA FUNZIONE D IMPRESA CHE:

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Introduzione agli Algoritmi Genetici Prof. Beatrice Lazzerini

Programmazione dinamica

B+Trees. Introduzione

Quadratic assignment Problem: The Hospital Layout

Algoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.

Equilibrio bayesiano perfetto. Giochi di segnalazione

~ Copyright Ripetizionando - All rights reserved ~ STUDIO DI FUNZIONE

Trasformazione dei Processi in Progetti DIB 1

COMUNE DI SOLBIATE ARNO

Esempi di algoritmi. Lezione III

Ricerca Automatica. Esercitazione 3. Ascensore. Ascensore. Ascensore

Sequenziamento a minimo costo di commutazione in macchine o celle con costo lineare e posizione home (In generale il metodo di ottimizzazione

Alla ricerca dell algoritmo. Scoprire e formalizzare algoritmi.

regola(1,[e,f],b) regola(2,[m,f],e) regola(3,[m],f) regola(4,[b,f],g) regola(5,[b,g],c) regola(6,[g,q],a)

Via Barberini ROMA IVA RENDIMENTO BORSA & FONDI I TIPI DI ORDINE

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

Nozione di algoritmo. Gabriella Trucco

Più processori uguale più velocità?

Stimare il WCET Metodo classico e applicazione di un algoritmo genetico

Barriere assorbenti nelle catene di Markov e una loro applicazione al web

Aprire WEKA Explorer Caricare il file circletrain.arff Selezionare random split al 66% come modalità di test Selezionare J48 come classificatore e

( x) ( x) 0. Equazioni irrazionali

DN-SEV Sistema Esperto per la Validazione

La struttura dati ad albero binario

Il Bilancio di esercizio

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Funzioni in C. Violetta Lonati

Progettazione concettuale

COGNOME E NOME (IN STAMPATELLO) MATRICOLA

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

B-Tree. Struttura dati usata in applicazioni che necessitano di gestire insiemi di chiavi ordinate Una variante (B+-Tree) è diffusa in:

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Economia Applicata ai sistemi produttivi Lezione II Maria Luisa Venuta 1

TSP con eliminazione di sottocicli

Il sapere tende oggi a caratterizzarsi non più come un insieme di contenuti ma come un insieme di metodi e di strategie per risolvere problemi.

Analisi e diagramma di Pareto

Termodinamica. Sistema termodinamico. Piano di Clapeyron. Sistema termodinamico. Esempio. Cosa è la termodinamica? TERMODINAMICA

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.

Sintesi Combinatoria Uso di componenti diversi dagli operatori elementari. Mariagiovanna Sami Corso di reti Logiche 8 Anno

SISTEMI MULTIAGENTE. Esercizio

Capitolo 4: Ottimizzazione non lineare non vincolata parte II. E. Amaldi DEIB, Politecnico di Milano

Gli oggetti di plastica. Abilità interessate Conoscenze Nuclei coinvolti Collegamenti esterni Decodificare informazioni di tipo grafico.

Altri metodi di indicizzazione

Laboratorio di Pedagogia Sperimentale. Indice

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Teoria dei Giochi. Dr. Giuseppe Rose Università degli Studi della Calabria Corso di Laurea Magistrale in Economia Applicata a.a 2011/2012 Handout 2

L INTERVENTO PUBBLICO NELLA REALTA

TECNICHE DI SIMULAZIONE

Complessità Computazionale

SOMMARIO Coda (queue): QUEUE. QUEUE : specifica QUEUE

La memoria centrale (RAM)

(liberamente interpretato da SCHEDA ALUNNI. Descrizione dell attività:

Algoritmi e strutture dati. Codici di Huffman

Introduzione al MATLAB c Parte 2

come nasce una ricerca

Anno 3. Funzioni: dominio, codominio e campo di esistenza

Alberi binari di ricerca

2 - Modifica Annulla ANNULLA TOPOGRAFICO ANNULLA TOPOGRAFICO MULTIPLO FIGURA 2.1

Gestione Turni. Introduzione

Test d ipotesi. Statistica e biometria. D. Bertacchi. Test d ipotesi

Транскрипт:

Ricerca informata Scelta dell euristica

SMA* (Simplified Memory-Bounded A*) SMA* espande sempre la foglia migliore finché la memoria è piena A questo punto deve cancellare un nodo in memoria SMA* cancella il peggiore quello con f-valore più elevato Però memorizza nel nodo padre il valore del nodo rimosso In questo modo SMA* può rigenerare il sottoalbero dimenticato quando tutti gli altri cammini sono falliti

SMA* 10+5=15 C D 20+5=25 20+0=20 30+5=35 E F B 30+0=30 A H 10+8=18 0+12=12 G 8+5=13 I 24+0=24 K 24+5=29 J 24+0=24

SMA* Si aggiunge B ad A, poi G ad A. Quello a costo minimo è G, allora scarto B ma mantengo in memoria A eppoi proseguo espandendo G. Vado ad espandere poi H ma non posso proseguire Espando I. I nodo obiettivo ma non è detto che sia il migliore Rigenero a partire da A il nodo B

SMA* I nodi rimossi sono rigenerati solo nel caso in cui tutti i percorsi attivi assumano un valore peggiore del valore di un percorso stimato rimosso. L algoritmo SMA* ha le seguenti proprietà: Utilizza la memoria a disposizione. Evita di rigenerare nodi nei limiti della memoria a disposizione. È completo se la memoria è sufficiente a contenere il percorso che comprende la soluzione. È ottimo se la memoria è sufficiente a contenere il percorso della soluzione, altrimenti ritorna la migliore soluzione che può raggiungere con la memoria a disposizione. È ottimamente efficiente se può memorizzare tutto l albero di ricerca.

SMA* Se la memoria è sufficiente l algoritmo SMA* risolve dei problemi più difficili di quelli risolti da A*. Tuttavia, con problemi molto difficili, risolvibili da A* se avesse a disposizione una memoria illimitata, la necessità di ripetere più volte la generazione di nodi rende il problema intrattabile dal punto di vista temporale.

SMA* Sebbene non ci sia una teoria che formalizzi il problema del compromesso tra tempo e memoria, non sembra che esista una soluzione efficace se non quella di rinunciare al requisito dell ottimalità Ed insegnare alla macchina ad imparare meglio aggiungendo uno spazio di metalivello al dominio del problema e cercando di minimizzare il costo totale della soluzione del problema dato dal costo del cammino ma anche dal costo computazionale che serve per ottenerlo

Algoritmi di ricerca locale e problemi di ottimizzazione

Ricerca locale e problemi di ottimizzazione (Algoritmi di Miglioramento Iterativo) Gli algoritmi analizzati fin qui sono progettati per esplorare sistematicamente gli spazi di ricerca. Ciò si ottiene memorizzando uno o più cammini e registrando quali alternative sono state esplorate. Quando viene raggiunto uno stato obiettivo il cammino verso quel stato costituisce una soluzione del problema. Per molti problemi il cammino verso l obiettivo è irrilevante, ciò che conta è la configurazione finale e non l ordine con cui è stata raggiunta Si possono considerare allora algoritmi di ricerca locale che operano su un singolo stato corrente invece che su cammini multipli

Ricerca locale e problemi di ottimizzazione (Algoritmi di Miglioramento Iterativo) Più precisamente: Gli algoritmi visti fino ad ora generano una soluzione ex-novo aggiungendo ad una situazione di partenza delle componenti in un particolare ordine fino a costruire la soluzione completa. Gli algoritmi di ricerca locale partono da una soluzione iniziale e iterativamente cercano di rimpiazzare la soluzione corrente con una migliore in un intorno della soluzione corrente. In questi casi non interessa la strada per raggiungere l obiettivo.

Ricerca locale e problemi di ottimizzazione (Algoritmi di Miglioramento Iterativo) Ci sono dei problemi (es. 8 regine) per cui la descrizione dello stato contiene tutte le informazioni necessarie per la soluzione indipendentemente dal percorso che ha condotto a quello stato. In questi casi l idea generale per la soluzione può essere quella di partire da uno stato iniziale completo (es. 8 regine già sulla scacchiera) e poi modificarlo per raggiungere una soluzione (o una soluzione migliore, se esiste). Questi metodi fanno parte dei cosiddetti algoritmi di ottimizzazione il cui scopo è massimizzare (minimizzare) il valore di una funzione di valutazione che misura la bontà (costo) di una soluzione.

Ricerca locale e problemi di ottimizzazione (Algoritmi di Miglioramento Iterativo) La ricerca locale, quindi, è basata sull esplorazione iterativa di soluzioni vicine, che possono migliorare la soluzione corrente mediante modifiche locali. La soluzione trovata da un algoritmo di ricerca locale non è detto sia ottima globalmente, ma può essere ottima rispetto ai cambiamenti locali.

Ricerca locale e problemi di ottimizzzione (Algoritmi di Miglioramento Iterativo) Struttura dei vicini (neighborhood). Una struttura dei vicini è una funzione F che assegna a ogni soluzione s dell insieme di soluzioni S un insieme di soluzioni N(s) sottoinsieme di S. La scelta della funzione F è fondamentale per l efficienza del sistema e definisce l insieme delle soluzioni che possono essere raggiunte da s in un singolo passo di ricerca dell algoritmo. Tipicamente è definita implicitamente attraverso le possibili mosse.

Ricerca locale e problemi di ottimizzazione (Algoritmi di Miglioramento Iterativo) Questi algoritmi partono con una soluzione di tentativo generata in modo casuale o mediante qualche algoritmo non ottimo e non completo ma a complessità computazionale modesta e cerca di migliorare la soluzione corrente muovendosi verso i vicini. Se fra i vicini c è una soluzione migliore, tale soluzione va a rimpiazzare la corrente. Altrimenti termina in un massimo (minimo) locale di ricerca. Questo metodo può essere rappresentato come il movimento su una superficie che rappresenta lo spazio degli stati alla ricerca della vetta più elevata o più bassa

Ricerca locale e problemi di ottimizzazione (Algoritmi di Miglioramento Iterativo) Cercheremo un minimo globale se l altezza corrisponde ad un costo, un massimo globale se l altezza corrisponde alla funzione obiettivo Un algoritmo di ricerca locale completo trova sempre un minimo/massimo Un algoritmo di ricerca locale ottimo trova sempre un minimo/massimo globale

Ricerca in Salita (Hill Climbing) L algoritmo di ricerca in salita è un algoritmo ciclico che, ad ogni passo, raggiunge una posizione migliore all interno di un area di ricerca, se esiste, seguendo la direzione di massima pendenza. Possiamo definire l algoritmo di ricerca in salita come segue: function Hill-Climbing(problem) { current = Make-Node(Initial-State(problem)); while true { next = a higher valued successor ; if Value(next) < Value(current) return current ; current = next; } }

Ricerca in Salita Si noti che l algoritmo non tiene traccia dell albero di ricerca. Questo algoritmo deve affrontare tre tipi di situazioni che lo possono bloccare. Nella rappresentazione dello spazio di ricerca come una superficie, corrispondono al raggiungimento di: massimi locali pianori crinali

Ricerca in Salita Il metodo per superare questi problemi è fare ripartire la ricerca da un altro punto scelto a caso Questo è ciò che fa una variante dell algoritmo di ricerca in salita (Randomrestart-hill-climbing). Questa variante ad ogni iterazione mantiene in memoria il risultato migliore e, periodicamente o al verificarsi di condizioni di blocco, riparte con una nuova iterazione da uno stato scelto in modo random.

Ricerca in Salita Dopo un certo numero fisso di iterazioni o dopo che per un certo numero di iterazioni questo risultato non viene migliorato, l algoritmo termina ritornando il risultato migliore. In genere una buona soluzione può essere trovata dopo poche iterazioni. Se il problema è NP-completo (generalmente un problema intrattabile), la soluzione non può che essere fornita in un tempo esponenziale poiché, per tale classe di problemi, lo spazio degli stati ha un numero esponenziale di massimi locali.

Simulated Annealing L algoritmo di simulated annealing ha un comportamento molto simile all algoritmo di ricerca in salita. La differenza consiste nell eseguire, ad ogni passo, una mossa casuale. Se la mossa migliora la situazione, allora viene sempre eseguita, altrimenti viene eseguita con probabilità e E/T dove: E è il peggioramento (<0) causato dall esecuzione della mossa. T è un valore che tende a zero con l aumentare dei cicli e quindi rende sempre meno probabile l esecuzione di mosse negative.

Simulated Annealing L algoritmo è così chiamato perché simula l annealing, cioè il processo graduale di raffreddamento di una sostanza che passa dallo stato liquido allo stato solido. Se la temperatura viene diminuita abbastanza lentamente, allora il liquido raggiunge una configurazione a minima energia.

Simulated Annealing Possiamo definire l algoritmo di simulated annealing come segue: function Simulated-Annealing(problem) { current = Make-Node(Initial-State(problem)); for t = 1 to { T = schedule[t]; schedule = mappatura tempo/temperatura if (T = = 0) return current; next = a randomly selected successor ; E = Value(next) - Value(current); if ( E > 0) current = next; else current = next with probability e E/T } }

Simulated Annealing In pratica cerca di evitare il problema dei massimi locali, seguendo la strategia in salita, ma ogni tanto fa un passo che non porta a un incremento in salita. Quando rimaniamo bloccati in un massimo locale, invece di cominciare di nuovo casualmente potremmo permettere alla ricerca di fare alcuni passi in discesa per evitare un massimo locale. Ci suggerisce quindi di esaminare, ogni tanto nella ricerca un nodo anche se sembra lontano dalla soluzione. Esempio di meta-euristiche

Meta-Euristiche Si definiscono meta-euristiche l insieme di algoritmi, tecniche e studi relativi all applicazione di criteri euristici per risolvere problemi di ottimizzazione (quindi migliorando la ricerca locale con criteri abbastanza generali).

Meta-Euristiche : altri esempi ANT colony optimization: ispirata al comportamento di colonie di insetti. Tali insetti mostrano capacità globali nel trovare, ad esempio, il cammino migliore per arrivare al cibo dal formicaio (algoritmi di ricerca cooperativi) Tabu search La sua caratteristica principale è l utilizzo di una memoria per guidare il processo di ricerca in modo da evitare la ripetizione di stati già esplorati. Algoritmi genetici algoritmi evolutivi ispirati ai modelli dell evoluzione delle specie in natura. Utilizzano il principio della selezione naturale che favorisce gli individui di una popolazione che sono più adatti aduno specifico ambiente per sopravvivere e riprodursi. Ogni individuo rappresenta una soluzione con il corrispondente valore della funzione di valutazione (fitness). I tre principali operatori sono: selezione, mutazione e ricombinazione.

Meta-Euristiche: Altre tecniche euristiche Scelta in base agli operatori (regole, task inseriti in un'agenda): a) Insita nel controllo e influenzata IMPLICITAMENTE dall'utente: b) Influenzata ESPLICITAMENTE dall'utente: Attribuendo alle regole dei valori di priorità (visti come numeri interi; in questo modo l interprete selezionerà sempre la regola applicabile a più alta priorità. - lo stato della memoria di lavoro; - la presenza di particolari regole applicabili; - la precedente esecuzione di regole correlate; - l'andamento dell esecuzione per particolari scelte fatte precedentemente.

META-CONOSCENZA META-CONOSCENZA = CONOSCENZA SULLA CONOSCENZA Può risolvere i problemi precedentemente citati (vasta applicazione non solo per il controllo). Usa delle meta-regola: Es: "Usa regole che esprimono situazioni di allarme prima di regole che esprimono situazioni di funzionamento normale". ESEMPI: Sistemi Esperti VANTAGGI: il sistema è maggiormente flessibile e modificabile; un cambiamento nella strategia di controllo implica semplicemente il cambiamento di alcune meta-regole. la strategia di controllo è semplice da capire e descrivere. potenti meccanismi di spiegazione del proprio comportamento.