Agenti che risolvono problemi attraverso la ricerca in uno spazio di stati

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Agenti che risolvono problemi attraverso la ricerca in uno spazio di stati"

Transcript

1 Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_1 V1.4 Agenti che risolvono problemi attraverso la ricerca in uno spazio di stati Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale e per supporto a lezioni universitarie. Ogni altro uso è riservato, e deve essere preventivamente autorizzato dall autore. Sono graditi commenti o suggerimenti per il miglioramento del materiale Nota: è utilizzato in parte il materiale didattico associato al testo di Stuart J. Russell, Peter Norvig A5 Ricerca Spazio Stati Paolo Salvaneschi 1

2 INDICE Risolvere problemi con una ricerca Modellazione del problema Applicazioni Algoritmi di ricerca Misure di prestazioni (complessità di algoritmi e problemi) A5 Ricerca Spazio Stati Paolo Salvaneschi 2 A5 Ricerca Spazio Stati Paolo Salvaneschi 2

3 Risolvere problemi con una ricerca Model-based Goal-based agent Agenti basati su un modello del mondo in cui il mondo è descritto come uno spazio di stati nel quale applicare un processo di ricerca Agenti dotati di un obiettivo A5 Ricerca Spazio Stati Paolo Salvaneschi 3 A5 Ricerca Spazio Stati Paolo Salvaneschi 3

4 Risolvere problemi con una ricerca I problemi si possono modellare come problemi di ricerca in uno spazio degli stati Spazio degli stati: lo spazio degli stati è l insieme di tutti gli stati raggiungibili dallo stato iniziale con una qualunque sequenza di operatori. Strategie di ricerca. A5 Ricerca Spazio Stati Paolo Salvaneschi 4 A5 Ricerca Spazio Stati Paolo Salvaneschi 4

5 Risolvere problemi con una ricerca Formulazione del problema Definizione degli stati Definizione dell obiettivo Definizione delle azioni (transizioni tra stati) Problema Ricerca di una soluzione Esame di diverse sequenze di azioni e scelta di una sequenza che permetta di raggiungere l obiettivo Soluzione: sequenza di azioni Esecuzione Realizzazione della sequenza di azioni trovata A5 Ricerca Spazio Stati Paolo Salvaneschi 5 A5 Ricerca Spazio Stati Paolo Salvaneschi 5

6 Risolvere problemi con una ricerca Schema di funzionamento dell agente (dato uno stato iniziale restituisce una singola azione) A5 Ricerca Spazio Stati Paolo Salvaneschi 6 A5 Ricerca Spazio Stati Paolo Salvaneschi 6

7 Risolvere problemi con una ricerca Dato uno stato iniziale restituisce una singola azione Se è invocato con una lista di azioni vuota Definisce lo stato di partenza Formula un obiettivo Formula il problema (quali sono gli stati, quali sono le azioni applicabili agli stati) Esegue una ricerca e produce una sequenza di azioni da eseguire Estrae un azione dalla sequenza e la restituisce Altrimenti Estrae un azione dalla sequenza e la restituisce Aspetti diversi: Formulazione obiettivo e modellazione del problema; Ricerca; Esecuzione A5 Ricerca Spazio Stati Paolo Salvaneschi 7 A5 Ricerca Spazio Stati Paolo Salvaneschi 7

8 Risolvere problemi con una ricerca Nota: L agente percepisce il mondo esterno solo all inizio (stato iniziale) Quando esegue la sequenza di azioni ignora le percezioni e suppone che la soluzione trovata funzioni in ogni caso A5 Ricerca Spazio Stati Paolo Salvaneschi 8 A5 Ricerca Spazio Stati Paolo Salvaneschi 8

9 Risolvere problemi con una ricerca Tipo di agente Statico: la formulazione e la soluzione del problema non considerano cambiamenti nell ambiente Ambiente completamente osservabile: lo stato iniziale è noto Discreto Deterministico Open Loop System A5 Ricerca Spazio Stati Paolo Salvaneschi 9 A5 Ricerca Spazio Stati Paolo Salvaneschi 9

10 Modellazione del problema Esempio A5 Ricerca Spazio Stati Paolo Salvaneschi 10 A5 Ricerca Spazio Stati Paolo Salvaneschi 10

11 Modellazione del problema Esempio A5 Ricerca Spazio Stati Paolo Salvaneschi 11 A5 Ricerca Spazio Stati Paolo Salvaneschi 11

12 Modellazione del problema Definizione del problema Un problema è definito da quattro elementi: Stato iniziale Funzione successore Test obiettivo Costo del cammino A5 Ricerca Spazio Stati Paolo Salvaneschi 12 A5 Ricerca Spazio Stati Paolo Salvaneschi 12

13 Modellazione del problema Stato iniziale Es. in Arad Funzione successore S(x) Un insieme di coppie azione-stato Es. Test obiettivo Un test per verificare se abbiamo raggiunto l obiettivo Può essere esplicito Es. in Bucharest o implicito (la proprietà scaccomatto nel gioco degli scacchi) A5 Ricerca Spazio Stati Paolo Salvaneschi 13 A5 Ricerca Spazio Stati Paolo Salvaneschi 13

14 Modellazione del problema Costo del cammino g Somma dei costi delle singole azioni lungo il cammino (es. somma delle distanze, numero di azioni eseguite) C(x,a,y) costo del singolo step >= 0 Soluzione Sequenza di azioni che portano dallo stato iniziale allo stato obiettivo A5 Ricerca Spazio Stati Paolo Salvaneschi 14 A5 Ricerca Spazio Stati Paolo Salvaneschi 14

15 Modellazione del problema Soluzione Una sequenza di azioni che porta dallo stato iniziale allo stato obiettivo Soluzione ottima Soluzione a path cost minimo tra tutte le soluzioni A5 Ricerca Spazio Stati Paolo Salvaneschi 15 A5 Ricerca Spazio Stati Paolo Salvaneschi 15

16 Modellazione del problema Modellazione degli stati e degli operatori A5 Ricerca Spazio Stati Paolo Salvaneschi 16 A5 Ricerca Spazio Stati Paolo Salvaneschi 16

17 Modellazione del problema Gli algoritmi di ricerca sono stati oggetto di ampio studio La modellazione è un processo creativo A5 Ricerca Spazio Stati Paolo Salvaneschi 17 A5 Ricerca Spazio Stati Paolo Salvaneschi 17

18 Applicazioni Esempio NB A5 Ricerca Spazio Stati Paolo Salvaneschi 18 A5 Ricerca Spazio Stati Paolo Salvaneschi 18

19 Applicazioni Esempio j j j A5 Ricerca Spazio Stati Paolo Salvaneschi 19 A5 Ricerca Spazio Stati Paolo Salvaneschi 19

20 Applicazioni Il problema del commesso viaggiatore: Un commesso viaggiatore ha una lista di città che deve visitare tutte una sola volta. Vi sono strade dirette fra ogni coppia di città. Si trovi la strada più breve che il commesso deve seguire per compiere un viaggio completo che inizi e termini in una qualsiasi delle città. Problema NP-Hard Esempio A5 Ricerca Spazio Stati Paolo Salvaneschi 20 A5 Ricerca Spazio Stati Paolo Salvaneschi 20

21 Applicazioni Pianificazione dei movimenti delle perforatrici automatiche di circuiti su schede VLSI layout Esempio Posizionamento dei componenti e delle piste su un circuito Navigazione di un robot A5 Ricerca Spazio Stati Paolo Salvaneschi 21 A5 Ricerca Spazio Stati Paolo Salvaneschi 21

22 Algoritmi di ricerca Algoritmi di ricerca Idea di base: generare un albero (grafo) di ricerca Nota: grafo lo stesso stato può essere raggiunto da percorsi multipli Vedi Il problema degli stati ripetuti A5 Ricerca Spazio Stati Paolo Salvaneschi 22 A5 Ricerca Spazio Stati Paolo Salvaneschi 22

23 Algoritmi di ricerca Algoritmi di ricerca Idea di base: generare un albero (grafo) di ricerca Stato iniziale Stato finale Operatore (trasforma uno stato in un altro) Funzione successore (dato uno stato attuale lo espande genera gli stati che si raggiungono applicando tutti gli operatori che si possono applicare) Soluzione (sequenza di operatori la cui applicazione trasforma lo stato iniziale nello stato finale) A5 Ricerca Spazio Stati Paolo Salvaneschi 23 A5 Ricerca Spazio Stati Paolo Salvaneschi 23

24 Algoritmi di ricerca Strategia di ricerca Regole di scelta dello stato da espandere Nota: lo spazio degli stati e l albero di ricerca sono due concetti distinti Es. nell esempio di ricerca del percorso da Arad a Bucharest ci sono: 20 stati (uno per città) un infinito numero di possibili percorsi (è un grafo) => albero di ricerca con infiniti nodi A5 Ricerca Spazio Stati Paolo Salvaneschi 24 A5 Ricerca Spazio Stati Paolo Salvaneschi 24

25 Algoritmi di ricerca Stati del problema e nodi dell albero di ricerca A5 Ricerca Spazio Stati Paolo Salvaneschi 25 A5 Ricerca Spazio Stati Paolo Salvaneschi 25

26 Algoritmi di ricerca Definizioni Parent. Nodo che ha generato il nodo che si considera Children. Nodo generato dal nodo che si considera Fringe (confine, frontiera). Collezione dei nodi generati ma non ancora espansi Depth. Numero di passi lungo il percorso dal nodo iniziale Path Cost. costo g(x) dallo stato iniziale al nodo che si considera Implementazione dell albero di ricerca Coda A5 Ricerca Spazio Stati Paolo Salvaneschi 26 A5 Ricerca Spazio Stati Paolo Salvaneschi 26

27 Algoritmi di ricerca Nota: due costi diversi: Costo della ricerca Costo dell esecuzione A5 Ricerca Spazio Stati Paolo Salvaneschi 27 A5 Ricerca Spazio Stati Paolo Salvaneschi 27

28 Algoritmi di ricerca Nodi espansi Nodi generati ma non ancora espansi Nodi non ancora generati A5 Ricerca Spazio Stati Paolo Salvaneschi 28 A5 Ricerca Spazio Stati Paolo Salvaneschi 28

29 Algoritmi di ricerca A5 Ricerca Spazio Stati Paolo Salvaneschi 29 A5 Ricerca Spazio Stati Paolo Salvaneschi 29

30 Algoritmi di ricerca Fringe A5 Ricerca Spazio Stati Paolo Salvaneschi 30 A5 Ricerca Spazio Stati Paolo Salvaneschi 30

31 Algoritmi di ricerca GENERAL TREE SEARCH ALGORITHM Per ogni possibile effetto di ogni possibile azione della funzione successore (insieme di coppie azione-stato) del nodo corrente Costruisci la struttura di dati del nuovo nodo espanso Restituisci i nodi successori A5 Ricerca Spazio Stati Paolo Salvaneschi 31 A5 Ricerca Spazio Stati Paolo Salvaneschi 31

32 Algoritmi di ricerca GENERAL TREE SEARCH ALGORITHM I nodi sono conservati in memoria. Trovato il nodo goal, attraverso il puntatore al node genitore si ricostruisce il cammino Nota: la struttura di dati contiene: -- Il puntatore al nodo genitore -- L azione che ha portato al nodo dal nodo genitore (una volta trovato il goal sarà possibile ricostruire all indietro il percorso e la sequenza di azioni da eseguire) -- Il costo del percorso -- La profondità del nodo A5 Ricerca Spazio Stati Paolo Salvaneschi 32 A5 Ricerca Spazio Stati Paolo Salvaneschi 32

33 Algoritmi di ricerca Nota La struttura dati di fringe è una coda Non è detto in che modo i dati sono inseriti /estratti dalla coda Il tipo di coda (FIFO, LIFO) incide sull ordine della ricerca A5 Ricerca Spazio Stati Paolo Salvaneschi 33 A5 Ricerca Spazio Stati Paolo Salvaneschi 33

34 Algoritmi di ricerca Strategie di ricerca. Una strategia è definita dall ordine con cui si espandono i nodi (es. in larghezza o in profondità) Classi di strategie Non informate (cieche). Non ci sono informazioni aggiuntive relativamente agli stati rispetto a quelle fornite dalla definizione del problema Informate (euristiche). Ci sono informazioni aggiuntive (uno stato è più promettente di altri) A5 Ricerca Spazio Stati Paolo Salvaneschi 34 A5 Ricerca Spazio Stati Paolo Salvaneschi 34

35 Misure di prestazioni Misura delle prestazioni degli algoritmi di ricerca shallowest goal node A5 Ricerca Spazio Stati Paolo Salvaneschi 35 A5 Ricerca Spazio Stati Paolo Salvaneschi 35

36 Misure di prestazioni Esempio A5 Ricerca Spazio Stati Paolo Salvaneschi 36 A5 Ricerca Spazio Stati Paolo Salvaneschi 36

37 Misure di prestazioni Nota: Analisi di algoritmi e notazione O() Domanda: quali prestazioni ha un algoritmo in termini di risorse (tempo, memoria)? Primo modo: Benchmarking Specifico del contesto di esecuzione Di limitata estrapolazione A5 Ricerca Spazio Stati Paolo Salvaneschi 37 A5 Ricerca Spazio Stati Paolo Salvaneschi 37

38 Secondo modo Misure di prestazioni Analisi dell algoritmo indipendentemente dalla specifica implementazione T(n) = 2n+2 Numero totale T di passi dell algoritmo (N. righe di codice eseguite. Astrazione dell implementazione) Lunghezza n della sequenza in ingresso (Astrazione dell input) Difficoltà di condurre un analisi esatta di algoritmi complessi A5 Ricerca Spazio Stati Paolo Salvaneschi 38 A5 Ricerca Spazio Stati Paolo Salvaneschi 38

39 Misure di prestazioni Terzo modo (Indipendentemente dalla specifica implementazione) Analisi asintotica (Ordine) Importa come cresce l utilizzo delle risorse al crescere della dimensione dell ingresso Risorse Dimensione dell ingresso A5 Ricerca Spazio Stati Paolo Salvaneschi 39 A5 Ricerca Spazio Stati Paolo Salvaneschi 39

40 Misure di prestazioni Ordine; Notazione O (o grande) f(n) è O(g(n)) Date due costanti positive c ed n 0, una funzione f(n) appartiene all insieme O(g(n)), ovvero f(n) O(g(n)) se: c, n 0 > 0 n > n 0, 0 f(n) c g(n) A5 Ricerca Spazio Stati Paolo Salvaneschi 40 A5 Ricerca Spazio Stati Paolo Salvaneschi 40

41 Misure di prestazioni Significato: A partire da una certa dimensione n 0 del dato di ingresso, la funzione g(n) maggiora la funzione f(n). La g(n) rappresenta un limite superiore per la f(n). Il limite non è stretto. Se f(n) O(n 2 ) vuol dire che f(n), da un certo punto in poi, è maggiorata da n 2 : se ciò è vero, anche n 3 maggiorerà la f(n), e quindi f(n) appartiene anche a O(n 3 ), limite meno stretto del precedente Nota sull uso improprio L utilizzo corretto delle notazioni asintotiche è in espressioni del tipo f(n) O(g(n)) E prassi comune l utilizzo del tipo f(n) = O(n 2 ). A5 Ricerca Spazio Stati Paolo Salvaneschi 41 A5 Ricerca Spazio Stati Paolo Salvaneschi 41

42 Misure di prestazioni Significato: Il comportamento per tutti gli n < n 0 non è tenuto in conto, per cui potranno esserci dei valori di n < n 0 tali che f(n) > g(n), Esempio di funzione f(n) che appartiene all insieme O(g(n)) A5 Ricerca Spazio Stati Paolo Salvaneschi 42 A5 Ricerca Spazio Stati Paolo Salvaneschi 42

43 Misure di prestazioni Complessità lineare O(n) Es.: ricerca sequenziale n log n O(n log n) Es.: Algoritmi di ordinamento ottimi. n k, con k>=2 O(n k ) Es.: moltiplicazione di due 2 matrici Esponenziale O(k n ) Es.: un algoritmo che debba produrre tutte le possibili stringhe lunghe n di k simboli A5 Ricerca Spazio Stati Paolo Salvaneschi 43 A5 Ricerca Spazio Stati Paolo Salvaneschi 43

44 Misure di prestazioni Confronto tra complessità polinomiale e esponenziale Tempo di esecuzione di tre algoritmi su un calcolatore che esegue un operazione in 10-6 secondi n.operazioni n complessità O(g(n)) n 2 n 5 2 n s= secondi, m= minuti, c=secoli A5 Ricerca Spazio Stati Paolo Salvaneschi 44 A5 Ricerca Spazio Stati Paolo Salvaneschi 44

45 Misure di prestazioni Nota:Analisi di complessità dei problemi Domanda:dato un problema, quale è la classe di complessità degli algoritmi che lo risolvono (indipendentemente dallo specifico algoritmo)? Scopo: comprendere le prestazioni massime raggiungibili da un algoritmo applicato a un problema A5 Ricerca Spazio Stati Paolo Salvaneschi 45 A5 Ricerca Spazio Stati Paolo Salvaneschi 45

46 Misure di prestazioni P classe dei problemi polinomiali Possono essere risolti in un tempo O(n k ) per un qualche k facili. Attenzione: includono anche O(n 1000 ) NP classe dei problemi non deterministici polinomiali Esiste un algoritmo che ipotizza una soluzione e verifica in un tempo polinomiale se la soluzione è corretta. Se si hanno tanti processori o si è fortunati i problemi NP diventano P A5 Ricerca Spazio Stati Paolo Salvaneschi 46 A5 Ricerca Spazio Stati Paolo Salvaneschi 46

47 Misure di prestazioni NP è equivalente a P se non si ha un infinità di processori? Problema aperto NP- completo (NP-hard) sottoclasse della classe NP Dato un problema np-completo non esiste un algoritmo che risolve tutte le istanze del problema in un tempo polinomiale Specifiche istanze possono essere risolte efficientemente A5 Ricerca Spazio Stati Paolo Salvaneschi 47 A5 Ricerca Spazio Stati Paolo Salvaneschi 47

48 Misure di prestazioni co-npcomplemento di NP Per ogni problema di decisione in NP c è un corrispondente problema in co-np con le risposte si e no invertite co-np- completo idem A5 Ricerca Spazio Stati Paolo Salvaneschi 48 A5 Ricerca Spazio Stati Paolo Salvaneschi 48

Sistemi di Interpretazione dati e Diagnosi Overview

Sistemi di Interpretazione dati e Diagnosi Overview Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A10_1 V1.0 Sistemi di Interpretazione dati e Diagnosi Overview Il contenuto del documento è liberamente utilizzabile

Dettagli

Logica proposizionale

Logica proposizionale Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A7_2 V1.1 Logica proposizionale Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale

Dettagli

Ricerca non informata in uno spazio di stati

Ricerca non informata in uno spazio di stati Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_2 V2.4 Ricerca non informata in uno spazio di stati Il contenuto del documento è liberamente utilizzabile dagli

Dettagli

Problemi, istanze, soluzioni

Problemi, istanze, soluzioni lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un

Dettagli

Intelligenza Artificiale. Problem Solving -Agenti risolutori di problemi

Intelligenza Artificiale. Problem Solving -Agenti risolutori di problemi Intelligenza Artificiale Problem Solving -Agenti risolutori di problemi Ragionare per cercare soluzioni Un problema viene risolto ricercandone la soluzione in un ampio spazio di possibili soluzioni. La

Dettagli

Generare sequenze di azioni.

Generare sequenze di azioni. Cercare soluzioni L idea è quella di mantenere ed estendere un insieme di sequenze soluzioni parziali. Un agente con diverse opzioni immediate di esito sconosciuto può decidere cosa fare esaminando prima

Dettagli

Agenti risolutori di problemi. Risolvere i problemi mediante ricerca Maria Simi a.a 2014/2015

Agenti risolutori di problemi. Risolvere i problemi mediante ricerca Maria Simi a.a 2014/2015 Agenti risolutori di problemi Risolvere i problemi mediante ricerca Maria Simi a.a 2014/2015 Agenti risolutori di problemi Adottano il paradigma della risoluzione di problemi come ricerca in uno spazio

Dettagli

Heap e code di priorità

Heap e code di priorità Heap e code di priorità Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica AA 2009/2010

Dettagli

Soluzione del problema come ricerca in uno spazio degli stati:

Soluzione del problema come ricerca in uno spazio degli stati: Soluzione del problema come ricerca in uno spazio degli stati: Gran parte dei problemi di Intelligenza Artificiale hanno la ricerca (o controllo) come componente fondamentale. I problemi si possono modellare

Dettagli

Corso di Programmazione Problem Solving. Tipi di Problemi. Problemi Complessi Soluzione. Dott. Pasquale Lops. Primitivi. Complessi

Corso di Programmazione Problem Solving. Tipi di Problemi. Problemi Complessi Soluzione. Dott. Pasquale Lops. Primitivi. Complessi Materiale didattico preparato dal dott. Stefano Ferilli Corso di Programmazione Problem Solving Dott. Pasquale Lops lops@di.uniba.it Corso di Programmazione - DIB 1/30 Tipi di Problemi Primitivi Risolubili

Dettagli

TEST: RAGGIUNGIMENTO DEL GOAL La verifica può essere solo l appartenenza dello stato raggiunto all insieme dello stato (o degli stati) goal. A volte l

TEST: RAGGIUNGIMENTO DEL GOAL La verifica può essere solo l appartenenza dello stato raggiunto all insieme dello stato (o degli stati) goal. A volte l Soluzione del problema come ricerca in uno spazio degli stati: Gran parte dei problemi di Intelligenza Artificiale hanno la ricerca (o controllo) come componente fondamentale. I problemi si possono modellare

Dettagli

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi

Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE. Paolo Salvaneschi A4_3 V2.1. Progettazione. Metodi e Linguaggi Università di Bergamo Facoltà di Ingegneria INGEGNERIA DEL SOFTWARE Paolo Salvaneschi A4_3 V2.1 Progettazione Metodi e Linguaggi Il contenuto del documento è liberamente utilizzabile dagli studenti, per

Dettagli

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE

TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE TEORIE E TECNICHE PER LA COMUNICAZIONE DIGITALE Riccardo Dondi Dipartimento di Scienze dei linguaggi, della comunicazione e degli studi culturali Università degli Studi di Bergamo Informazione sul corso

Dettagli

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

2.3 Cammini ottimi. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 . Cammini ottimi E. Amaldi Fondamenti di R.O. Politecnico di Milano .. Cammini minimi e algoritmo di Dijkstra Dato un grafo orientato G = (N, A) con una funzione di costo c : A c ij R e due nodi s e t,

Dettagli

Intelligenza Artificiale. Lezione 3. Intelligenza Artificiale Daniele Nardi, 2004/05 Lezione 3 0

Intelligenza Artificiale. Lezione 3. Intelligenza Artificiale Daniele Nardi, 2004/05 Lezione 3 0 Intelligenza Artificiale ezione 3 Intelligenza Artificiale Daniele Nardi, 2004/05 ezione 3 0 isoluzione automatica di problemi Prolem solving sommario(ussell&norvig Cap. 3) Agenti risolutori di problemi

Dettagli

Esercizi proposti 10

Esercizi proposti 10 Esercizi proposti 10 In questo gruppo di esercizi assumiamo, dove non sia specificato diversamente, di rappresentare i grafi mediante liste di archi, con il tipo di dati così dichiarato: type a graph =

Dettagli

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

3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Scopo: Stimare l onere computazionale per risolvere problemi di ottimizzazione e di altra natura

Dettagli

Algoritmo basato su cancellazione di cicli

Algoritmo basato su cancellazione di cicli Algoritmo basato su cancellazione di cicli Dato un flusso ammissibile iniziale, si costruisce una sequenza di flussi ammissibili di costo decrescente. Ciascun flusso è ottenuto dal precedente flusso ammissibile

Dettagli

Parole note, nuovi significati: linguaggio, determinismo e infinito

Parole note, nuovi significati: linguaggio, determinismo e infinito Parole note, nuovi significati: linguaggio, determinismo e infinito Angelo Montanari Dipartimento di Matematica e Informatica Università degli Studi di Udine Ciclo di seminari su un Vocabolario Filosofico

Dettagli

Cercare il percorso minimo Ant Colony Optimization

Cercare il percorso minimo Ant Colony Optimization Cercare il percorso minimo Ant Colony Optimization Author: Luca Albergante 1 Dipartimento di Matematica, Università degli Studi di Milano 4 Aprile 2011 L. Albergante (Univ. of Milan) PSO 4 Aprile 2011

Dettagli

Il problema del commesso viaggiatore: da Ulisse alla Logistica integrata. Luca Bertazzi

Il problema del commesso viaggiatore: da Ulisse alla Logistica integrata. Luca Bertazzi Il problema del commesso viaggiatore: da Ulisse alla Logistica integrata Luca Bertazzi 0 3 Ulisse: da Troia a Itaca Troia Itaca 509 km Quale è stato invece il viaggio di Ulisse? Il viaggio di Ulisse Troia

Dettagli

Introduzione agli Algoritmi ed alle Strutture Dati Anno Accademico 2015/2016 Appello 23/6/2016

Introduzione agli Algoritmi ed alle Strutture Dati Anno Accademico 2015/2016 Appello 23/6/2016 1. Indicare quali delle seguenti affermazioni sono vere e quali sono false. a. n 3 = Θ (n 3log n ) b. n! = Ω(n n ) c. log n = Θ (log( n 2 )) d. n 3 =Ω(n) e. 9 log 3 n = Θ (n) 2. Si dimostri in modo formale

Dettagli

Soluzione del problema come ricerca in uno spazio degli stati:

Soluzione del problema come ricerca in uno spazio degli stati: Soluzione del problema come ricerca in uno spazio degli stati: Gran parte dei problemi di Intelligenza Artificiale hanno la ricerca (o controllo) come componente fondamentale. I problemi si possono modellare

Dettagli

RETI DI CALCOLATORI II

RETI DI CALCOLATORI II RETI DI CALCOLATORI II Facoltà di Ingegneria Università degli Studi di Udine Ing. DANIELE DE CANEVA a.a. 2009/2010 ARGOMENTI DELLA LEZIONE TEORIA DEL ROUTING ROUTING STATICO ROUTING DINAMICO o PROTOCOLLI

Dettagli

Esercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che:

Esercizi su Python. 14 maggio Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che: Esercizi su Python 14 maggio 2012 1. Scrivere una procedura che generi una stringa di 100 interi casuali tra 1 e 1000 e che: 1. conti quanti elementi pari sono presenti nella lista; 2. conti quanti quadrati

Dettagli

Assemblaggio degli Elementi: Soluzione del Problema Strutturale Discreto

Assemblaggio degli Elementi: Soluzione del Problema Strutturale Discreto Il Metodo degli Elementi Finiti Assemblaggio degli Elementi: Soluzione del Problema Strutturale Discreto Dalle dispense del prof. Dario Amodio e dalle lezioni del prof. Giovanni Santucci Per ottenere la

Dettagli

1 SOLUZIONE DEI PROBLEMI TRAMITE GRAFI

1 SOLUZIONE DEI PROBLEMI TRAMITE GRAFI 1 SOLUZIONE DEI PROBLEMI TRAMITE GRAFI Questo capitolo tratta della possibilità di risolvere problemi analizzando le diverse possibilità prodotte dalla scelta dell agente. Abbiamo già visto come un agente

Dettagli

Sistemi Web per il turismo - lezione 3 -

Sistemi Web per il turismo - lezione 3 - Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa

Dettagli

Il concetto di calcolatore e di algoritmo

Il concetto di calcolatore e di algoritmo Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica

Dettagli

Fondamenti VBA. Che cos è VBA

Fondamenti VBA. Che cos è VBA Fondamenti VBA Che cos è VBA VBA, Visual Basic for Application è un linguaggio di programmazione, inserito nelle applicazioni Office di Microsoft (Ms Word, Ms Excel, Ms PowerPoint, Visio). VBA è una implementazione

Dettagli

ESERCIZIO MIN-MAX Si consideri il seguente albero di gioco dove i punteggi sono tutti dal punto di vista del primo giocatore.

ESERCIZIO MIN-MAX Si consideri il seguente albero di gioco dove i punteggi sono tutti dal punto di vista del primo giocatore. ESERCIZIO MIN- Si consideri il seguente albero di gioco dove i punteggi sono tutti dal punto di vista del primo giocatore. B C D E F G H I J K L M N O P Q R S T U (6) (8) (5) (0) (-2) (2) (5) (8) (9) (2)

Dettagli

Macchine sequenziali. Automa a Stati Finiti (ASF)

Macchine sequenziali. Automa a Stati Finiti (ASF) Corso di Calcolatori Elettronici I Macchine sequenziali Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione Corso

Dettagli

In molte applicazioni sorge il problema di sapere in quanti modi possibili si può presentare un certo fenomeno.

In molte applicazioni sorge il problema di sapere in quanti modi possibili si può presentare un certo fenomeno. Definizione Oggetto del calcolo combinatorio è quello di determinare il numero dei modi mediante i quali possono essere associati, secondo prefissate regole, gli elementi di uno stesso insieme o di più

Dettagli

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo

Algoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo 1 Cos è l informatica? L informatica è la scienza della rappresentazione e dell elaborazione dell informazione Algoritmi e loro proprietà Proprietà formali degli Algoritmi Efficienza rispetto al tempo

Dettagli

COMPITO DI FONDAMENTI DI INTELLIGENZA ARTIFICIALE INTELLIGENZA ARTIFICIALE (v.o.) PARTE I. 25 Giugno 2008 (Tempo a disposizione 2h ; su 32 punti)

COMPITO DI FONDAMENTI DI INTELLIGENZA ARTIFICIALE INTELLIGENZA ARTIFICIALE (v.o.) PARTE I. 25 Giugno 2008 (Tempo a disposizione 2h ; su 32 punti) COMPITO DI FONDAMENTI DI INTELLIGENZA ARTIFICIALE INTELLIGENZA ARTIFICIALE (v.o.) PARTE I 25 Giugno 08 (Tempo a disposizione 2h ; su 32 punti) Esercizio 1 (punti 3) Dire quali tra le seguenti formule nella

Dettagli

11.4 Chiusura transitiva

11.4 Chiusura transitiva 6 11.4 Chiusura transitiva Il problema che consideriamo in questa sezione riguarda il calcolo della chiusura transitiva di un grafo. Dato un grafo orientato G = hv,ei, si vuole determinare il grafo orientato)

Dettagli

Lucchetto con combinazione (3 numeri tra 0 e 39)

Lucchetto con combinazione (3 numeri tra 0 e 39) Complessita computazionale ed il problema P / NP Fondamenti di Informatica 2011/12 Lucchetto con combinazione (3 numeri tra 0 e 39) Perche e sicuro? (escludendo che lo si rompa) Combinazione di 3 numberi

Dettagli

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 17 giugno 2013 A UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa Seconda prova intermedia 7 giugno 0 Nome: Cognome: Matricola: Orale /06/0 ore aula N Orale 0/07/0 ore aula N

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo

Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani (liverani@mat.uniroma3.it)

Dettagli

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande / VERSIONE 1 Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 30/06/2016/ Foglio delle domande/ VERSIONE 1 1) In Python, se scrivo v = [ ] in un programma, vuol dire che a) v è un quadrato b) v è un insieme vuoto

Dettagli

Sommario. Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP

Sommario. Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP Sommario Caratterizzazione alternativa di NP: il verificatore polinomiale esempi di problemi in NP I conjecture that there is no good algorithm for the traveling salesman problem. My reasons are the same

Dettagli

I giochi con avversario. I giochi con avversario. Introduzione. Giochi come problemi di ricerca. Il gioco del NIM.

I giochi con avversario. I giochi con avversario. Introduzione. Giochi come problemi di ricerca. Il gioco del NIM. I giochi con avversario I giochi con avversario Maria Simi a.a. 26/27 Regole semplici e formalizzabili eterministici, due giocatori, turni alterni, zero-sum, informazione perfetta (ambiente accessibile)

Dettagli

Alberi binari e alberi binari di ricerca

Alberi binari e alberi binari di ricerca Alberi binari e alberi binari di ricerca Violetta Lonati Università degli studi di Milano Dipartimento di Scienze dell Informazione Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica

Dettagli

Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati

Cammini minimi. Definizioni. Distanza fra vertici. Proprietà dei cammini minimi. Algoritmi e Strutture Dati Algoritmi e Strutture Dati Definizioni Sia G=(V,E) un grafo orientato con costi w sugli archi. Il costo di un cammino π= è dato da: Cammini minimi Un cammino minimo tra una coppia di

Dettagli

LA PROGRAMMAZIONE MATEMATICA (p.m.)

LA PROGRAMMAZIONE MATEMATICA (p.m.) LA PROGRAMMAZIONE MATEMATICA (p.m.) Un problema di programmazione matematica è un problema di ottimizzazione riconducibile alla seguente espressione generale: ricercare i valori delle variabili x 1, x

Dettagli

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire:

Sviluppo di programmi. E ora, finalmente. Si comincia! 1. Analizzare il problema. 2. Progettare una soluzione (1) E necessario capire: Sviluppo di programmi Per scrivere un programma C corretto bisogna: E ora, finalmente Si comincia! DD Cap. pp.4974 Analizzare il problema (input, output, casi estremali) 2. Progettare una soluzione (algoritmo)

Dettagli

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Dettagli

Alberi binari di ricerca

Alberi binari di ricerca Alberi binari di ricerca Ilaria Castelli castelli@dii.unisi.it Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/20010 I. Castelli Alberi binari di ricerca, A.A. 2009/20010

Dettagli

Cosa è l Informatica?

Cosa è l Informatica? Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore

Dettagli

DISPENSE DI PROGRAMMAZIONE

DISPENSE DI PROGRAMMAZIONE DISPENSE DI PROGRAMMAZIONE Modulo 1 Risolvere problemi con l elaboratore: dal problema all algoritmo (Parte II) I Linguaggi di descrizione degli algoritmi - Notazioni grafiche (parte 1) Il linguaggio dei

Dettagli

Minimizzazione di Reti Logiche Combinatorie Multi-livello

Minimizzazione di Reti Logiche Combinatorie Multi-livello Minimizzazione di Reti Logiche Combinatorie Multi-livello Maurizio Palesi Maurizio Palesi 1 Introduzione I circuiti logici combinatori sono molto spesso realizzati come reti multi-livello di porte logiche

Dettagli

Diagrammi a blocchi 1

Diagrammi a blocchi 1 Diagrammi a blocchi 1 Sommario Diagrammi di flusso, o a blocchi. Analisi strutturata. Esercizi. 2 Diagrammi a blocchi È un linguaggio formale di tipo grafico per rappresentare gli algoritmi. Attraverso

Dettagli

Concetti Introduttivi. Il Computer

Concetti Introduttivi. Il Computer Concetti Introduttivi Il Computer Introduzione Informazione Notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Messaggio Tutto ciò che porta

Dettagli

Definizioni. Soluzione ottima: migliore soluzione possibile Soluzione ottima localmente: soluzione ottima in un dominio contiguo. Il paradigma greedy

Definizioni. Soluzione ottima: migliore soluzione possibile Soluzione ottima localmente: soluzione ottima in un dominio contiguo. Il paradigma greedy Il paradigma greedy Paolo Camurati, Fulvio Corno, Matteo Sonza Reorda Dip. Automatica e Informatica Politecnico di Torino Definizioni Soluzione ottima: migliore soluzione possibile Soluzione ottima localmente:

Dettagli

Lucchetto con combinazione (3 numeri tra 0 e 39)

Lucchetto con combinazione (3 numeri tra 0 e 39) Complessita computazionale ed il problema P / NP Fondamenti di Informatica 2010/11 Lucchetto con combinazione (3 numeri tra 0 e 39) Perche e sicuro? (escludendo che lo si rompa) Ans: Combinazione di 3

Dettagli

ADT: Abstract Data Type. Quasi ADT. ADT per collezioni di dati (code generalizzate) 04 I tipi di dati astratti (I parte)

ADT: Abstract Data Type. Quasi ADT. ADT per collezioni di dati (code generalizzate) 04 I tipi di dati astratti (I parte) ADT: Abstract Data Type I tipi di dati astratti (I parte) Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino Scopo Livello di astrazione sui dati tale da mascherare completamente

Dettagli

TRIE (albero digitale di ricerca)

TRIE (albero digitale di ricerca) TRIE (albero digitale di ricerca) Struttura dati impiegata per memorizzare un insieme S di n stringhe (il vocabolario V). Tabelle hash le operazioni di dizionario hanno costo O(m) al caso medio per una

Dettagli

ADT Coda con priorità

ADT Coda con priorità Code con priorità ADT Coda con priorità Una coda con priorità è una struttura dati dinamica che permette di gestire una collezione di dati con chiave numerica. Una coda con priorità offre le operazioni

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Analisi Asintotica Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Un graduale processo di astrazione Passo 1: abbiamo ignorato il costo effettivo

Dettagli

Costruzione di espressioni regolari 4

Costruzione di espressioni regolari 4 ostruzione di espressioni regolari 4 Indicando con d uno dei possibili digits {,, 2,,9} --possiamo esprimere il sotto linguaggio dei digits come d = ( + + 2 +.. + 9) Quale linguaggio produce l espressione:

Dettagli

L algoritmo AKS. L algoritmo AKS. Seminario per il corso di Elementi di Algebra Computazionale. Oscar Papini. 22 luglio 2013

L algoritmo AKS. L algoritmo AKS. Seminario per il corso di Elementi di Algebra Computazionale. Oscar Papini. 22 luglio 2013 L algoritmo AKS Seminario per il corso di Elementi di Algebra Computazionale Oscar Papini 22 luglio 2013 Test di primalità Come facciamo a sapere se un numero n è primo? Definizione (Test di primalità)

Dettagli

Algoritmi e giochi combinatori

Algoritmi e giochi combinatori Algoritmi e giochi combinatori Panoramica Giochi combinatori Programmi che giocano Albero di un gioco L algoritmo Minimax 1 Perché studiare i giochi? Problemi che coinvolgono agenti in competizione tra

Dettagli

Alberi Binari di Ricerca

Alberi Binari di Ricerca Alberi Binari di Ricerca Prof. G. M. Farinella gfarinella@dmi.unict.it www.dmi.unict.it/farinella Riferimenti Bibliografici Cormen T.H., Leiserson C.E., Rivest R.L Introduction to Algorithms, Third Edition,

Dettagli

Algoritmi. Pagina 1 di 5

Algoritmi. Pagina 1 di 5 Algoritmi Il termine algoritmo proviene dalla matematica e deriva dal nome di in algebrista arabo del IX secolo di nome Al-Khuwarizmi e sta ad indicare un procedimento basato su un numero finito operazioni

Dettagli

Routing IP. IP routing

Routing IP. IP routing Routing IP IP routing IP routing (inoltro IP): meccanismo per la scelta del percorso in Internet attraverso il quale inviare i datagram IP routing effettuato dai router (scelgono il percorso) Routing diretto

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Grafi: visita generica

Grafi: visita generica .. Grafi: visita generica Una presentazione alternativa (con ulteriori dettagli) Algoritmi di visita Scopo: visitare tutti i vertici di un grafo (si osservi che per poter visitare un vertice occorre prima

Dettagli

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione

Appunti del corso di Informatica 1 (IN110 Fondamenti) 7 Grafi e alberi: introduzione Università di Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica (IN0 Fondamenti) Grafi e alberi: introduzione Marco Liverani (liverani@mat.uniroma.it)

Dettagli

Fondamenti di Informatica II 9. Complessità computazionale

Fondamenti di Informatica II 9. Complessità computazionale Scelta di un algoritmo Fondamenti di Informatica II 9. Complessità computazionale Dato un problema, esistono diversi algoritmi che permettono di risolverlo. I fattori che possono influenzare la scelta

Dettagli

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014

Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Algoritmi e Principi dell'informatica Seconda Prova in Itinere - 14 Febbraio 2014 Nome..Cognome.Matr. Laureando Avvisi importanti Il tempo a disposizione è di 1 ora e 30 minuti. Se non verranno risolti

Dettagli

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso INDICI PER FILE Strutture ausiliarie di accesso 2 Accesso secondario Diamo per scontato che esista già un file con una certa organizzazione primaria con dati non ordinati, ordinati o organizzati secondo

Dettagli

Come ragiona il computer. Problemi e algoritmi

Come ragiona il computer. Problemi e algoritmi Come ragiona il computer Problemi e algoritmi Il problema Abbiamo un problema quando ci poniamo un obiettivo da raggiungere e per raggiungerlo dobbiamo mettere a punto una strategia Per risolvere il problema

Dettagli

Algoritmi e Strutture Dati

Algoritmi e Strutture Dati Introduzione al Corso Maria Rita Di Berardini (Camerino), Emanuela Merelli (Ascoli) 1 1 Scuola di Scienze e Tecnologie - Sezione di Informatica Università di Camerino Parte I Il concetto di Algoritmo Il

Dettagli

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente

Dettagli

Università degli Studi di Cassino e del Lazio Meridionale Corso di Fondamenti di Informatica Algoritmi ed esecutori

Università degli Studi di Cassino e del Lazio Meridionale Corso di Fondamenti di Informatica Algoritmi ed esecutori Università degli Studi di Cassino e del Lazio Meridionale Corso di Algoritmi ed esecutori Anno Accademico Francesco Tortorella Che cosa si intende per INFORMATICA? Scienza della rappresentazione e dell

Dettagli

Tracce. 1. Data una lista di elementi di tipo intero, implementare in C++ le seguenti funzioni

Tracce. 1. Data una lista di elementi di tipo intero, implementare in C++ le seguenti funzioni Algoritmi e Strutture Dati Tracce 1. Data una lista di elementi di tipo intero, implementare in C++ le seguenti funzioni int freq(list &L, int k): restituisce il numero di occorrenze dei multipli

Dettagli

Ripasso di teoria ed esercizi in preparazione al terzo compito. 26 gennaio 2004

Ripasso di teoria ed esercizi in preparazione al terzo compito. 26 gennaio 2004 Ripasso di teoria ed esercizi in preparazione al terzo compito 26 gennaio 2004 Teoria: domande tipo per il terzo compitino 1. Metaprogrammazione: In cosa consiste la metaprogrammazione? Quali sono alcuni

Dettagli

Analisi ammortizzata (Tarjan in 1985)

Analisi ammortizzata (Tarjan in 1985) In questa lezione Analisi della complessità di una sequenza di operazioni di estrazione e inserimento in una tabella memorizzata su un array, usando l analisi ammortizzata. Analisi ammortizzata (Tarjan

Dettagli

Il problema del commesso viaggiatore e problemi di vehicle routing

Il problema del commesso viaggiatore e problemi di vehicle routing Il problema del commesso viaggiatore e problemi di vehicle routing Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, 56127 Pisa laura.galli@unipi.it http://www.di.unipi.it/~galli 2 Dicembre

Dettagli

Parte II - Reti di Calcolatori ed Internet IL LIVELLO RETE

Parte II - Reti di Calcolatori ed Internet IL LIVELLO RETE Parte II - Reti di Calcolatori ed Internet IL LIVELLO RETE 3-1 Il Livello RETE Servizi del livello Rete Organizzazione interna Livello Rete basato su Circuito Virtuale Livello Rete basato su Datagram Algoritmi

Dettagli

Agenti risolutori di problemi

Agenti risolutori di problemi Agenti risolutori di problemi Agenti risolutori di problemi Risolvere i problemi mediante ricerca Maria Simi a.a 2012/2013 Adottano il paradigma della risoluzione di problemi come ricerca in uno spazio

Dettagli

Pumping lemma per i linguaggi Context-free

Pumping lemma per i linguaggi Context-free Pumping lemma per i linguaggi Context-free Sia L un linguaggio context-free. E possibile determinare una costante k, dipendente da L, tale che qualunque stringa z! L con z > k si può esprimere come z=

Dettagli

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna:

Prova di Laboratorio del [ Corso A-B di Programmazione (A.A. 2004/05) Esempio: Media Modalità di consegna: Prova di Laboratorio del 12.1.2005 [durata 90 min.] Corso A-B di Programmazione (A.A. 2004/05) 1. Leggere da tastiera un insieme di numeri interi ed inserirli in un vettore A 2. Calcolare tramite una funzione

Dettagli

Primi passi con JFlex

Primi passi con JFlex Primi passi con JFlex Luca Chiodini Abstract Ci proponiamo di muovere i primi passi nel mondo dell analisi lessicale e della produzione automatica di un analizzatore lessicale. Verrà mostrato l uso di

Dettagli

Sistemi Qualità e normativa

Sistemi Qualità e normativa Università di Bergamo Dip. di Ingegneria gestionale, dell'informazione e della produzione INGEGNERIA DEL SOFTWARE Paolo Salvaneschi B2_1 V3.2 Sistemi Qualità e normativa Il contenuto del documento è liberamente

Dettagli

Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD

Macchine RAM. API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD Macchine RAM API a.a. 2013/2014 Gennaio 27, 2014 Flavio Mutti, PhD 2 Macchina RAM 3 Esercizio Si consideri il linguaggio definito da: L = wcw R w a, b } 1. Codificare un programma RAM per il riconoscimento

Dettagli

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico

in termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito

Dettagli

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore

Programma del corso. Elementi di Programmazione. Introduzione agli algoritmi. Rappresentazione delle Informazioni. Architettura del calcolatore Programma del corso Introduzione agli algoritmi Rappresentazione delle Informazioni Architettura del calcolatore Reti di Calcolatori Elementi di Programmazione Algoritmi e programmi Algoritmo Sequenza

Dettagli

Introduzione. Il routing permette la comunicazione tra due nodi differenti anche se non sono collegati direttamente

Introduzione. Il routing permette la comunicazione tra due nodi differenti anche se non sono collegati direttamente Routing Introduzione Il livello 3 della pila ethernet ha il compito di muovere i pacchetti dalla sorgente attraversando più sistemi Il livello di network deve quindi: Scegliere di volta in volta il cammino

Dettagli

Tecniche di compressione senza perdita

Tecniche di compressione senza perdita FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Tecniche di compressione senza perdita 2000 Pier Luca Montessoro (si veda la nota di copyright

Dettagli

Automi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di

Automi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di Automi Automi finiti: macchine a stati su sistemi di transizioni finiti Modellare con TS e specificare con automi: si usa lo stesso tipo di rappresentazione per descrivere programmi e specifiche. ω-automi:

Dettagli

Informatica e Bioinformatica: Algoritmi

Informatica e Bioinformatica: Algoritmi Informatica e Bioinformatica: Algoritmi 20 Marzo 2014 Programmi Applicativi Programmi Applicativi Sistema Operativo (lezione 3) Macchina Hardware (lezione 1 e 2) La macchina hardware permette l esecuzione

Dettagli

età (anni) manutenzione (keuro) ricavato (keuro)

età (anni) manutenzione (keuro) ricavato (keuro) .6 Cammini minimi. Determinare i cammini minimi dal nodo 0 a tutti gli altri nodi del seguente grafo, mediante l algoritmo di Dijkstra e, se applicabile, anche mediante quello di Programmazione Dinamica.

Dettagli

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014

UNIVERSITÀ DEGLI STUDI ROMA TRE Corso di Studi in Ingegneria Informatica Ricerca Operativa 1 Seconda prova intermedia 20 giugno 2014 A Ricerca Operativa 1 Seconda prova intermedia Un tifoso di calcio in partenza da Roma vuole raggiungere Rio De Janeiro per la finale del mondiale spendendo il meno possibile. Sono date le seguenti disponibilità

Dettagli

UNIVERSITA DEGLI STUDI DI PERUGIA

UNIVERSITA DEGLI STUDI DI PERUGIA UNIVERSITA DEGLI STUDI DI PERUGIA REGISTRO DELLE LEZIONI E DELLE ALTRE ATTIVITÀ DIDATTICHE Anno accademico 2006-2007 Dott./Prof. Pinotti Maria Cristina Settore scientifico-disciplinare INF01 Facoltà Scienze

Dettagli

FONDAMENTI DI INFORMATICA II

FONDAMENTI DI INFORMATICA II Università degli Studi di Ferrara Facoltà di Ingegneria APPUNTI DEL CORSO DI FONDAMENTI DI INFORMATICA II Obiettivi del corso: Approfondire l uso del linguaggio C rispetto a quanto noto dal corso di Fondamenti

Dettagli

Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi A5_1 V1.3 Applicazioni B2B

Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi A5_1 V1.3 Applicazioni B2B Università di Bergamo Facoltà di Ingegneria Applicazioni Internet B Paolo Salvaneschi A5_1 V1.3 Applicazioni B2B Il contenuto del documento è liberamente utilizzabile dagli studenti, per studio personale

Dettagli

Primo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale

Primo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale Primo allenamento Olimpiadi Italiane di Informatica - Selezione territoriale Luca Chiodini luca@chiodini.org - l.chiodini@campus.unimib.it 10 marzo 2016 Programma 1. Lettura di un problema tratto dalle

Dettagli

Rappresentazione con i diagrammi di flusso (Flow - chart)

Rappresentazione con i diagrammi di flusso (Flow - chart) Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo

Dettagli

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo

Programmazione Orientata agli Oggetti. Emilio Di Giacomo e Walter Didimo Programmazione Orientata agli Oggetti Emilio Di Giacomo e Walter Didimo Una metafora dal mondo reale la fabbrica di giocattoli progettisti Un semplice giocattolo Impara i suoni Dall idea al progetto Toy

Dettagli