La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Il problem-solving Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino.

Presentazioni simili


Presentazione sul tema: "Il problem-solving Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino."— Transcript della presentazione:

1 Il problem-solving Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino

2 A.A. 2004/ Il problem-solving2 SOSTANZE Problema di ottimizzazione Trovare una serie (di costo minimo) di di N elementi, uno per ogni fase di un processo industriale, non incompatibili tra loro. L'elenco degli elementi, con il loro nome e le relative incompatibilità, viene letto da file.

3 A.A. 2004/ Il problem-solving3 Problema in dettaglio Processo industriale per il trattamento dei materiali, composto da 10 fasi In ogni fase viene utilizzata una sostanza particolare, scelta in un certo numero di sostanze Ogni sostanza è caratterizzata da un determinato prezzo Ogni sostanza può inoltre essere incompatibile con altre sostanze utilizzabili nel processo (in altre fasi), così che l'uso di una sostanza rende impossibile l'utilizzo di tutte le sostanze con essa incompatibili, in tutte le fasi del processo, precedenti e/o successive.

4 A.A. 2004/ Il problem-solving4 Problema in dettaglio Il programma (ricerca) determina per ogni fase la sostanza da utilizzare, compatibile con quelle scelte in tutte le altre fasi (ottimizzazione) è necessario minimizzare il costo del processo (somma dei costi delle sostanze selezionate). Il programma legge da file le informazioni relative alle sostanze disponibili, al loro prezzo (espresso come intero inferiore a 1000), alla fase in cui sono utilizzabili, e alla lista delle eventuali incompatibilita'.

5 A.A. 2004/ Il problem-solving5 Formato file input La prima riga contiene il numero di sostanze disponibili, sotto forma di un intero tra 1 e 100 per ogni sostanza vi sono nel file: una riga contenente il nome della sostanza, il suo prezzo, la fase in cu può essere utilizzata, il numero di sostanze (tra quelle precedentemente riportate nel file) con cui e' incompatibile, nel formato '#' tante righe quante sono le sostanze incompatibili, in ognuna delle quali è riportato il nome della sostanza.

6 A.A. 2004/ Il problem-solving6 Algoritmo Strategia: Ricerca Visitare (enumerare in modo ricorsivo) tutte le possibili soluzioni. Per 10 fasi 10 chiamate ricorsive: la ricorsione di profondità i prova tutte le sostanze possibili per la fase i e attiva ricorsivamente il completamento delle fasi successive. Ottimizzazione si mantengono soluzione corrente e soluzione migliore provvisoria. Ogni nuova soluzione viene confrontata con la migliore ed eventualmente la aggiorna (simile a ricerca di massimo/minimo)

7 A.A. 2004/ Il problem-solving7 Struttura dati Occorre prevedere strutture dati per: Elenco delle sostanze, con fasi in cui utilizzarle e costo. Sono possibili più scelte: elenco unico di sostanze oppure sottoinsiemi di sostanze per le singola fasi Incompatibilità tra sostanze. Sono informazioni simili ad archi in un grafo, sono quindi possibili: Rappresentazioni a matrice o liste delle adiacenze (incompatibilità) Soluzioni (corrente e migliore) Due vettori o due liste

8 A.A. 2004/ Il problem-solving8 Informazioni su sostanze Elenco unificato (es. array di struct) contenente tutte le sostanze Semplicità di lettura e di gestione Lenumerazione delle sostanze compatibili con la fase i ha costo O(N tot ), con N tot numero totale delle sostanze Sostanze raggruppate in sottoinsiemi disgiunti (non è previsto il possibile uso di una sostanza in più fasi) Difficoltà implementativa (es. array di array o array di liste) Lenumerazione delle sostanze compatibili con la fase i ha costo O(N i ), con N i numero delle sostanze delli- esimo sottoinsieme

9 A.A. 2004/ Il problem-solving9 Informazioni su sostanze Soluzione intermedia: elenco unificato, ordinato per sottoinsiemi Lettura semplice da file Sorting per fase Le sostanze appartenenti allo stesso sottoinsieme sono adiacenti nel vettore I 10 sottoinsiemi sono facilmente identificabili mediante un array di indici

10 A.A. 2004/ Il problem-solving10 Grafo delle incompatibilità Le incompatibilità sono un grafo: La matrice di adiacenza fornisce test di incompatibilità O(1) tra due sostanze date Elenco delle incompatibilità, per una data sostanze, di costo O(N tot ) Le liste di adiacenza offrono ( N tot : lunghezza max. di lista di incompatibilità test di incompatibilità O( N tot ) tra due sostanze date Elenco delle incompatibilità, per una data sostanze, di costo O( N tot )

11 A.A. 2004/ Il problem-solving11 Grafo delle incompatibilità: utilizzo Dato un insieme di sostanze già selezionate (per le prime fasi) percorrere solo quelle compatibili lista delle compatibilità: Soluzione migliore ma difficile da realizzare (compatibilità con più sostanze, lista dinamica) oppure Provare tutte quelle adatte alla fase corrente, verificando la compatibilità con quelle già scelte matrice di compatibilità/incompatibilità: doppio loop con test di compatibilità O(1). Buon compromesso tra semplicità realizzativa e costo !

12 A.A. 2004/ Il problem-solving12 Il problema dei nomi Problema: passare da una sostanza alle informazioni relative (costo, fase, compatibilità/incompatibilità). Se le informazioni sono in uno o più vettori, occorre associare a ogni sostanza un INDICE (es. intero tra 0 e N tot ) Se una sostanza viene individuata per NOME, occorre un meccanismo di conversione NOME INDICE Una soluzione efficiente consiste nellidentificare le sostanze mediante indice (anziché nome). Lalgoritmo e le liste o matrice di incompatibilità si basano su indici (accesso diretto). Il passaggio al nome (O(1)) viene fatto solo quando necessario (es. per output).

13 A.A. 2004/ Il problem-solving13 Soluzione corrente/migliore Le due soluzioni gestite (corrente e migliore) possono essere gestite come vettori o liste. Vista la dimensione ridotta e predicibile (10) risulta più semplice gestire due vettori di indici (interi) alle sostanze selezionate. Un insieme di sostanze per le prime i fasi viene identificato da un vettore caricato fino alli-esima casella. Il backtrack è semplice (basta decrementare il numero di caselle occupate.

14 A.A. 2004/ Il problem-solving14 La soluzione proposta Variabili statiche: minore modularità ma soluzione ad hoc semplice Vettore di struct sostanza (non ordinato: soluzione più semplice) Matrice (statica) delle incompatibilità Conversione nome-indice (ricerca lineare in vettore) in fase di lettura Soluzioni corrente e migliore: array di indici


Scaricare ppt "Il problem-solving Gianpiero Cabodi e Paolo Camurati Dip. Automatica e Informatica Politecnico di Torino."

Presentazioni simili


Annunci Google