Informatica II. Capitolo 16 Backtrack
|
|
|
- Lia Rossa
- 8 anni fa
- Visualizzazioni
Transcript
1 Introduzione Informatica II Capitolo 16 Backtrack Abbiamo visto che esistono diverse classi di problemi (decisionali, di ricerca, di ottimizzazione) Sono tutte definizioni basate sul concetto di soluzione ammissibile: una soluzione che soddisfa un certo insiemi di criteri/vincoli Problemi tipici che possono rivestire interesse, sono Contare le soluzioni ammissibili Costruire/trovare almeno una o tutte le soluzioni ammissibili Trovare le soluzioni ammissibili più grandi, più piccole o in generale ottimali Esempio: Elencare tutti i sottoinsiemi di k elementi di un insieme S Adattamento delle slide originali di A.Montresor. Disponibili secondo Creative Commons Attribution-NonCommercial-ShareAlike License. 2 Alcuni commenti Alcuni commenti Enumerazione Consiste nell elencare algoritmicamente tutte le possibili soluzioni ammissibili di un dato problema. Ovvero si esplora lo spazio di ricerca (spazio delle soluzioni) Costruire almeno una soluzione Si utilizza l'algoritmo per elencare tutte le soluzioni, fermandosi alla prima Contare le soluzioni In molti casi, è possibile contare in modo analitico Esempio: Se S = n, allora il # sottoinsiemi di k elementi: In altri casi, si costruiscono le soluzioni e si contano man mano che si trovano Trovare le soluzioni ottimali Si costruiscono/trovano tutte le soluzioni ad una ad una. Per ogni soluzione si valuta una funzione di costo Ovviamente in molti casi si possono utilizzare altre tecniche per trovare una soluzione ottimale. Per esempio programmazione dinamica, greedy, 3 4
2 Costruire tutte le soluzioni? Per costruire tutte le possibili soluzioni, si utilizza un approccio brute-force : Ovvero: si esamina interamente lo spazio delle possibili soluzioni Se sospettate che possa essere un approccio inefficiente, non sbagliate. Ma: spesso è l'unica strada possibile (o non ce ne sono di più efficienti) Tuttavia: a volte non è necessario analizzare l'intero spazio delle soluzioni Filosofia: Prova a fare qualcosa, e se non va bene, disfalo e prova qualcos'altro Ovvero: se nel costruire una soluzione devi compiere una scelta, falla e poi se scopri che era la scelta sbagliata torna indietro e scegli diversamente. Come funziona? Un metodo sistematico per iterare su tutte le possibili istanze di uno spazio di ricerca E' una tecnica algoritmica generale che, come altre, deve essere specializzata per trattare il particolare problema che si sta affrontando 5 6 Descrizione generale della tecnica: Una soluzione viene rappresentata come un vettore S[1..n] Il contenuto degli elementi S[i] è preso da un insieme di possibili scelte C, dipendente dal problema Esempi: C insieme generico, possibili soluzioni permutazioni di C: per ogni i scelgo un elemento di C (e lo tolgo da C in preparazione delle scelte successive) C insieme generico, possibili soluzioni sottoinsiemi di C: per ogni i scelgo se prendere o meno l elemento i-esimo di C C mosse di gioco, possibili soluzioni sequenze di mosse: per ogni i scelgo una delle mosse permesse (nota che le mosse permesse potrebbero essere diverse a seconda di i) C archi di un grafo, possibili soluzioni percorsi sul grafo: per ogni i scelgo un arco uscente dal nodo in cui sono arrivato (di volta in volta posso scegliere solo tra un sottoinsieme degli archi) 7 Come procedere: Ad ogni passo, partiamo da una soluzione parziale S[1..k] (all inizio k=0 e la soluzione parziale è vuota ) Se S[1..k] è una soluzione ammissibile, la processiamo in qualche modo (e se ne volevamo una sola, abbiamo finito, altrimenti si continua) Altrimenti (se non è ammissibile): Se è possibile, estendiamo S[1..k] compiendo una delle possibili scelte ed ottenendo una soluzione S[1..k+1]. Valutiamo ora la nuova soluzione procedendo ricorsivamente Altrimenti (se non è possibile estendere), cancelliamo l ultima scelta fatta (ritornando indietro nella ricorsione) ovvero rimuoviamo l'elemento S[k] (backtrack) e ripartiamo dalla soluzione S[1..k-1] (compiendo una scelta diversa da quella/e cancellata/e) Oss: Si può fare backtrack su più passi di ricorsione 8
3 Spazio di ricerca albero di decisione Soluzioni foglie in un albero di decisione Soluzioni parziali nodi interni dell'albero di decisione Radice soluzione parziale vuota Lo spazio di ricerca può essere ridotto (o possiamo visitarne solo una parte): Ad esempio i rami dell'albero che sicuramente non portano a soluzioni ammissibili possono essere potati (pruned) Per scoprire se posso potare un sottoalbero, devo compiere una valutazione in corrispondenza della soluzione parziale, cioè della radice del sottoalbero da potare Esempio: un circuito in un grafo che pesi meno di k, 9 10 : algoritmo generico Due possibili approcci per implementare la ricerca/visita: Ricorsivo: procede compiendo una visita in profondità nell'albero delle scelte, basata su un approccio ricorsivo Iterativo: utilizza un approccio greedy, eventualmente tornando sui propri passi 11 12
4 Esempio 1 Esempio 1: commenti Problema Elencare tutti i sottoinsiemi di un insieme S Domanda: Quali sono le scelte possibili? Commenti Non c'è pruning: tutto lo spazio possibile viene esplorato. In che ordine vengono stampati gli insiemi? E possibile pensare ad una soluzione iterativa? (che non usa backtracking) Esempio 1: versione iterativa Esempio 2 Problema Elencare tutti i sottoinsiemi di dimensione k di un insieme S Versione iterativa Qual è il costo? Soluzione basata su backtracking Possiamo potare? 15 16
5 Esempio 2: un tentativo Esempio 2: tentativo migliore Si potrebbe potare qualcosa? Esempio 3 n Regine Problema Stampa di tutte le permutazioni di un insieme A Rispetto al problema precedente: L'insieme dei candidati dipende dalla soluzione parziale corrente Problema: posizionare n regine in una scacchiera n n, in modo tale che nessuna regina ne minacci un'altra. Commenti storici: Il problema classico, con n=8 Metodo Partiamo dall'approccio più ingenuo, e via via raffiniamo la soluzione
6 n Regine Idea: ci sono n 2 caselle dove piazzare una regina Algoritmo: S[1..n 2] array binario : S[i] = true regina in S[i] controllo soluzione: quando i = n 2 choices(s, n, i) : pruning: num. di soluzioni per n= ~ Commenti: { true, false} {} se la nuova regina minaccia le regine esistenti Forse non abbiamo scelto la rappresentazione migliore La matrice binaria è molto sparsa n Regine Idea: Dobbiamo piazzare n regine, ci sono n 2 caselle Algoritmo S[1..n] coordinate in 1..n 2 : controllo soluzione: S[i] coordinata della regina i se i = n choices(s, n, i) : {1 n 2} pruning: ritorna il sottoinsieme di posizioni legali num. di soluzioni per n=8 (n 2) n = 64 8 = 2 48 ~ Commenti C'è un miglioramento, ma lo spazio è ancora grande... Domanda: una soluzione come si distingue da ? n regine Idea: la regina i non può stare in una casella precedente alla regina i-1 (S[i-1] < S[i]) Algoritmo S[1..n] coordinate in 1..n 2 controllo soluzione: S[i] coordinata della regina i se i = n choices(s, n, i) {1 n 2} n regine Idea: ogni riga della scacchiera deve contenere esattamente una regina. Infatti non ne può contenere 2 o più, e se ne contenesse 0 un'altra riga dovrebbe contenerne 2 Algoritmo S[1..n] valori in 1..n controllo soluzione S[i] colonna della regina i se i = n choices(s, n, i) {1 n} pruning: ritorna posizioni legali, S[i-1] < S[i] pruning ritorna le colonne legali num. di soluzioni per n=8 (n 2) n / n! = 6 48 / ~ Commenti: Abbiamo ridotto molto, ma si può ancora fare qualcosa num. di soluzioni per n=8 n n = 8 8 ~ Commenti Quasi alla fine 23 24
7 n regine Idea: anche ogni colonna deve contenere esattamente una regina; i numeri 1..n devono apparire in S[1..n] come permutazione Algoritmo Modifichiamo l'algoritmo delle permutazioni per verificare anche le diagonali num. di soluzioni per n=8 n! = ~ num. soluzioni effettivamente visitate: Giro di cavallo Problema: Si consideri ancora una scacchiera n n; lo scopo è trovare un giro di cavallo, ovvero un percorso di mosse valide del cavallo in modo che ogni casella venga visitata al più una volta Soluzione: Tramite backtrack Giro di cavallo Giro di cavallo Soluzione Matrice n n le cui celle contengono 0 se la cella non è mai stata visitata i se la cella è stata visitata al passo i num. soluzioni: 64! ~ Ma: ad ogni passo ho al massimo 8 successive caselle possibili, quindi ne visito al più 8 64 ~10 57 In realtà, grazie al pruning ne visito molto meno 27 28
8 Sudoku Sudoku Suuji wa dokushin ni kagiru Sudoku 29 Generazione labirinti 30 Esercizio Come generare un labirinto in una scacchiera n n? Come uscire da un labirinto? Esempio: 31 32
9 Un ultimo puzzle Esercizio Si consideri ancora una scacchiera n n, con n=2 k Qualsiasi scacchiera di questo tipo con una cella rimossa può essere ricoperta da triomini a forma di L Trovare un algoritmo che trovi una possibile ricopertura della scacchiera 33
Algoritmi e Strutture Dati. Backtracking
Algoritmi e Strutture Dati Backtracking Alberto Montresor Università di Trento 2016/12/08 This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Sommario 1 Introduzione
METODI DELLA RICERCA OPERATIVA
Università degli Studi di Cagliari FACOLTA' DI INGEGNERIA CORSO DI METODI DELLA RICERCA OPERATIVA Dott.ing. Massimo Di Francesco ([email protected]) i i Dott.ing. Maria Ilaria Lunesu ([email protected])
Informatica Generale Homework di Recupero 2016
Informatica Generale Homework di Recupero 016 docente: Ivano Salvo Sapienza Università di Roma Gruppo 1 Esercizio 1.1 Scrivere un programma C che presi in input due interi positivi a ed b (a, b > 0) calcola
Il problema dello zaino
Il problema dello zaino (knapsack problem) Damiano Macedonio [email protected] Copyright 2010 2012 Moreno Marzolla, Università di Bologna (http://www.moreno.marzolla.name/teaching/asd2011b/) This work is licensed
Intelligenza Artificiale
Intelligenza Artificiale 17 Marzo 2005 Nome e Cognome: Matricola: ESERCIZIO N 1 Ricerca Cieca 5 punti 1.A) Elencare in modo ordinato i nodi (dell'albero sotto) che vengono scelti per l'espansione dalle
Esercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla [email protected] Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi
Il Branch & Bound. Definizione 1. Sia S R n. La famiglia S = {S 1, S 2,..., S k S} tale che S 1 S 2 S k = S viene detta suddivisione di S.
Il Branch & Bound Il metodo Branch & Bound è una tecnica che permette di risolvere all ottimo un generico problema di Programmazione Lineare Intera. Tale metodo si basa su due concetti cardine: quello
Alberi. Alberi: definizioni. Alberi Binari. Esercizi su alberi binari: metodi ricorsivi. Struttura dati per alberi generici. ASD-L - Luca Tesei
Alberi Alberi: definizioni Alberi Binari Esercizi su alberi binari: metodi ricorsivi Struttura dati per alberi generici 1 Alberi Gli alberi sono strutture dati naturalmente ricorsive Un albero è un particolare
Grafi: definizioni e visite
Grafi: definizioni e visite Grafi (non orientati) Grafo (non orientato): G = (V, E) V = nodi (o vertici) E = archi fra coppie di nodi distinti. Modella relazioni fra coppie di oggetti. Parametri della
Il problema del commesso viaggiatore
Il problema del commesso viaggiatore Mauro Passacantando Dipartimento di Informatica Largo B. Pontecorvo 3, Pisa [email protected] M. Passacantando TFA 2012/13 - Corso di Ricerca Operativa Università
3.4 Metodo di Branch and Bound
3.4 Metodo di Branch and Bound Consideriamo un generico problema di Ottimizzazione Discreta dove X è la regione ammissibile. (P ) z = max{c(x) : x X} Metodologia generale di enumerazione implicita (Land
Algoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 12 Grafi e visite di grafi Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Definizione Un grafo G=(V,E) consiste in: - un insieme V di vertici (o nodi) - un insieme
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
Note per la Lezione 4 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 4 Ugo Vaccaro Ripasso di nozioni su Alberi Ricordiamo che gli alberi rappresentano una generalizzazione delle liste, nel senso che
Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi
Esercizi Capitolo 11 - Strutture di dati e progettazione di algoritmi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore
Parte III: Algoritmo di Branch-and-Bound
Parte III: Algoritmo di Branch-and-Bound Divide et Impera Sia z * max {c T x : x S} (1) un problema di ottimizzazione combinatoria difficile da risolvere. Domanda: E possibile decomporre il problema (1)
LE STRUTTURE DATI DINAMICHE: GLI ALBERI. Cosimo Laneve
LE STRUTTURE DATI DINAMICHE: GLI ALBERI Cosimo Laneve 1 argomenti 1. definizione di alberi e nozioni relative 2. implementazione degli alberi, creazione, visita 3. algoritmo di visita iterativa e sua implementazione
Lezione 7 Alberi binari: visite e alberi di ricerca
Lezione 7 Alberi binari: visite e alberi di ricerca Informatica 6 Maggio 2015 Operazioni sugli alberi: visita La visita di un albero esplora tutti i nodi ed esegue una qualche operazione su di essi. Per
INTRODUZIONE ALLA TEORIA DEI GIOCHI
Corso di Identificazione dei Modelli e Controllo Ottimo Prof. Franco Garofalo INTRODUZIONE ALLA TEORIA DEI GIOCHI A cura di Elena Napoletano [email protected] Teoria dei Giochi Disciplina che studia
Progettazione di Algoritmi
Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 06/07/2016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via
Programmazione dinamica
Programmazione dinamica Violetta Lonati Università degli studi di Milano Dipartimento di Informatica Laboratorio di algoritmi e strutture dati Corso di laurea in Informatica Violetta Lonati Programmazione
ESERCIZI SULLA TECNICA BACKTRACKING e BRANCH & BOUND
ESERCIZI SULLA TECNICA BACKTRACKING e BRANCH & BOUND 1. [ STRINGHE] Scrivere in pseudo-codice una procedura che, preso in input un intero n, stampi tutte le stringhe di lunghezza minore o uguale ad n sull
Progettazione di algoritmi
Progettazione di algoritmi Discussione dell'esercizio [vincoli] Prima di tutto rappresentiamo il problema con un grafo G: i nodi sono le n lavorazioni L 1, L 2,, L n, e tra due nodi L h, L k c'è un arco
Fondamenti di Informatica II. Algoritmi ricorsivi e Backtracking
Università degli studi di Messina Facoltà di Ingegneria Corso di Laurea in Ingegneria Informatica e delle Telecomunicazioni Fondamenti di Informatica II Algoritmi ricorsivi e Backtracking Introduzione
Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione
Algoritmi greedy Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Gli algoritmi greedy sono algoritmi basati sull idea
Espressioni aritmetiche
Espressioni aritmetiche Consideriamo espressioni costruite a partire da variabili e costanti intere mediante applicazione delle operazioni di somma, sottrazione, prodotto e divisione (intera). Ad esempio:
Esercizi svolti. delle matrici
Esercizi svolti. astratti. Si dica se l insieme delle coppie reali (x, y) soddisfacenti alla relazione x + y è un sottospazio vettoriale di R La risposta è sì, perchè l unica coppia reale che soddisfa
Strutture dati per rappresentare grafi
lgoritmi e strutture dati amil emetrescu, Irene inocchi, iuseppe. Italiano Strutture dati per rappresentare grafi opyright 2004 - The Mcraw - Hill ompanies, srl lgoritmi e strutture dati amil emetrescu,
Algoritmi e Strutture Dati
Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Il concetto di dato Il concetto di tipo di dato Insertion Sort for j 2 to lenght[a]
Cammini minimi fra tutte le coppie
Capitolo 12 Cammini minimi fra tutte le coppie Consideriamo il problema dei cammini minimi fra tutte le coppie in un grafo G = (V, E, w) orientato, pesato, dove possono essere presenti archi (ma non cicli)
Algoritmi Approssimanti per -TSP
Dispensa del corso di TAA redatta da Amati Di auro Rattà. Algoritmo 5 e APX per il problema Algoritmi Approssimanti per -TSP Definizione (TSP) Il problema del commesso viaggiatore (TSP) è definito come
Ricerca Operativa. G. Liuzzi. Lunedí 20 Aprile 2015
1 Lunedí 20 Aprile 2015 1 Istituto di Analisi dei Sistemi ed Informatica IASI - CNR Rilassamento di un problema Rilassare un problema di Programmazione Matematica vuol dire trascurare alcuni (tutti i)
Algoritmi e strutture di dati 2
Paola Vocca Lezione 4: Programmazione dinamica 1 Caratteristiche Programmazione dinamica: paradigma basato sullo stesso principio utilizzato per il divide et impera o il problema viene decomposto in sotto-problemi
Grafi: visite. Una breve presentazione. F. Damiani - Alg. & Lab. 04/05 (da C. Demetrescu et al - McGraw-Hill)
Grafi: visite Una breve presentazione Visite di grafi Scopo e tipi di visita Una visita (o attraversamento) di un grafo G permette di esaminare i nodi e gli archi di G in modo sistematico Problema di base
Algoritmi di Ricerca
Algoritmi e Strutture Dati Autunno 01 Algoritmi di Ricerca Dip. Informatica ed Appl. Prof. G. Persiano Università di Salerno 1 Ricerca esaustiva 1 2 Backtrack 3 2.1 Backtrack per enumerazione......................................
Alberi ed Alberi Binari
Alberi ed Alberi Binari Il tipo di dato Albero Un albero è una struttura di data organizzata gerarchicamente. È costituito da un insieme di nodi collegati tra di loro: ogni nodo contiene dell informazione,
Note per la Lezione 6 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 6 Ugo Vaccaro Ancora sulla tecnica Programmazione Dinamica Nella lezione scorsa abbiamo appreso che la tecnica Divide-et-Impera,
Problemi difficili e ricerca esaustiva intelligente
Problemi difficili e ricerca esaustiva intelligente Progettazione di Algoritmi a.a. 2016-17 Matricole congrue a 1 Docente: Annalisa De Bonis Gli argomenti di questa lezione sono tratti da Dasgupta, Papadimitriou,
Alberto Montresor Università di Trento
!! Algoritmi e Strutture Dati! Capitolo 5 - Alberi!!! Alberto Montresor Università di Trento!! This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License. To view a copy
Algoritmi e Strutture Dati
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Algoritmi e Strutture Dati Capitolo 2 Minimo albero ricoprente: Algoritmo di Prim Il problema del calcolo di un Minimum
Parte V: Rilassamento Lagrangiano
Parte V: Rilassamento Lagrangiano Tecnica Lagrangiana Consideriamo il seguente problema di Programmazione Lineare Intera: P 1 min c T x L I Ax > b Cx > d x > 0, intera in cui A = matrice m x n C = matrice
Secondo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale
Secondo allenamento Olimpiadi Italiane di Informatica - Selezione territoriale Luca Chiodini [email protected] - [email protected] 15 marzo 2016 Programma 1. Lettura di un problema tratto dalle
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
Progettazione di Algoritmi
Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 29/01/2016 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via
Esercitazione 6. Alberi binari di ricerca
Esercitazione 6 Alberi binari di ricerca Struttura base Rappresentabile attraverso una struttura dati concatenata in cui ogni nodo è un oggetto di tipo struttura Ogni nodo contiene: campo chiave (key)
Esercizi per il corso di. Logistica I. a.a Daniela Favaretto. Dipartimento di Matematica Applicata Università Ca Foscari di Venezia
sercizi per il corso di Logistica I a.a. - aniela avaretto ipartimento di Matematica pplicata Università a oscari di Venezia sercizio Individuare un albero di supporto di lunghezza minima (SST) sul seguente
Problema del cammino minimo
Algoritmi e Strutture di Dati II Problema del cammino minimo Un viaggiatore vuole trovare la via più corta per andare da una città ad un altra. Possiamo rappresentare ogni città con un nodo e ogni collegamento
ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I
ALGORITMI DI OTTIMIZZAZIONE M Esercizi Parte I Esercizio 1 Dati n oggetti ed un contenitore, ad ogni oggetto j (j = 1,, n) sono associati un peso p j ed un costo c j (con p j e c j interi positivi). Si
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,
1) Codici convoluzionali. 2) Circuito codificatore. 3) Diagramma a stati e a traliccio. 4) Distanza libera. 5) Algoritmo di Viterbi
Argomenti della Lezione 1) Codici convoluzionali 2) Circuito codificatore 3) Diagramma a stati e a traliccio 4) Distanza libera 5) Algoritmo di Viterbi 1 Codici convoluzionali I codici convoluzionali sono
ALGORITMI CORSO DI STUDIO IN INFORMATICA (laurea triennale) UNIVERSITÀ DEGLI STUDI DI CATANIA ANNO ACCADEMICO 2014/15
ANNO ACCADEMICO 2014/15 1 a prova in itinere 13 gennaio 2015 ESERCIZIO 1 Si risolva l equazione di ricorrenza al variare del parametro reale a>1. T (n) = 27 n a T + n 2 log n a ESERCIZIO 2 Si ordinino
Gestione della produzione e della supply chain Logistica distributiva
Gestione della produzione e della supply chain Logistica distributiva Paolo Detti Dipartimento di Ingegneria dell Informazione e Scienze Matematiche Università di Siena Convergenza dell algoritmo Se non
Algoritmi e strutture dati
Algoritmi e Strutture Dati Cammini minimi Definizioni Sia G = (V,E) un grafo orientato pesato sugli archi. Il costo di un cammino π = è dato da: Un cammino minimo tra una coppia di
Introduzione alla programmazione lineare
Introduzione alla programmazione lineare struttura del problema di PL forme equivalenti rappresentazione e soluzione grafica rif. Fi 1.2; BT 1.1, 1.4 Problema di programmazione lineare Dati: un vettore
Problemi, algoritmi, calcolatore
Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione
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
Algoritmi e Strutture Dati
Algoritmi Ricorsivi e Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 I conigli di Fibonacci Ricerca Binaria L isola dei conigli
Introduzione al Metodo del Simplesso. 1 Soluzioni di base e problemi in forma standard
Introduzione al Metodo del Simplesso Giacomo Zambelli 1 Soluzioni di base e problemi in forma standard Consideriamo il seguente problema di programmazione lineare (PL), relativo all esempio di produzione
Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari.
Alberi n-ari: specifiche sintattiche e semantiche. Realizzazioni. Visita di alberi n-ari. Algoritmi e Strutture Dati + Lab A.A. / Informatica Università degli Studi di Bari Aldo Moro Nicola Di Mauro ALBERO
Algoritmi e Strutture Dati
Introduzione ai grafi Grafi: Definizione e Algoritmi di visita Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2007/08 Introduzione ai
Programmazione Greedy I codici di Huffman
Programmazione Greedy I codici di Huffman Codifica dell informazione La rappresentazione ordinaria dell informazione prevede l impiego di un numero costante di bit; per esempio ad ogni carattere del codice
Alberi e alberi binari I Un albero è un caso particolare di grafo
Alberi e alberi binari Un albero è un caso particolare di grafo È costituito da un insieme di nodi collegati tra di loro mediante archi Gli archi sono orientati (ogni arco esce da un nodo origine ed entra
2.2 Alberi di supporto di costo ottimo
. Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) protocolli reti IP memorizzazione compatta di
Cammini minimi in grafi:
Algoritmi e strutture dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Cammini minimi in grafi: una trilogia Cammini minimi in grafi: Episodio III: la fine della trilogia Input: nelle puntate
LA METAFORA DELL UFFICIO
LA METAFORA DELL UFFICIO Lavagna di lavoro Lavagna di programma Sportello utenti Impiegato Capo Ufficio LAVAGNA DI LAVORO Chiamiamo variabili le posizioni sulla lavagna, identificate ognuna da un nome
Strutture dati e loro organizzazione. Gabriella Trucco
Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti
Esercizi Capitolo 10 - Code con priorità e insiemi disgiunti Alberto Montresor 27 marzo 2012 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente,
Terzo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale
Terzo allenamento Olimpiadi Italiane di Informatica - Selezione territoriale Luca Chiodini [email protected] - [email protected] 22 marzo 2016 Programma 1. Lettura di un problema tratto dalle
Progettazione di Algoritmi
Corso di laurea in Informatica Prova scritta del: Progettazione di Algoritmi 0/06/06 Prof. De Prisco Inserire i propri dati nell apposito spazio. Non voltare la finché non sarà dato il via. Dal via avrai
