Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


APPUNTI - ALGORITMO DEL BACKTRAKING, Appunti di Algoritmi E Strutture Di Dati

- ALGORITMO DEL BACKTRAKING GENERALE - ALGORITMO GENERALE - COLORAZIONE DI UNA MAPPA - PROBLEMA DELLE CRICCHE DI CARDINALITA’ K

Tipologia: Appunti

2019/2020

In vendita dal 02/10/2020

SUDOUser
SUDOUser 🇮🇹

9 documenti

1 / 4

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
TECNICA DEL BACKTRACKING
E’ una tecnica che estende la tecnica di forza bruta (ricerca esaustiva) attraverso l’introduzione di alcuni
controlli per verificare se la soluzione corrente è ammissibile ,ciò consente di ridurre lo spazio di ricerca. Nel
caso peggiore tale tecnica ricade nella stessa complessità di una tecnica di forza bruta,in generale la
complessità è sempre esponenziale.Una tipologia di problemi che possono essere facilmente risolvibili
tramite questa tecnica sono i problemi riguardanti l’assegnazione di un valore, preso da un dominio, a
ciascuno degli elementi di una soluzione.
Al contrario del metodo di forza bruta, che effettua il controllo di ammissibilità solo quando l’ipotetica
soluzione viene creata, la tecnica del BACKTRACKING verifica l’ammissibilità ogni qual volta viene inserito
un elemento all’interno della soluzione.
Per poter applicare la tecnica del Backtracking ad un problema devono valere le seguenti condizioni:
Lo spazio delle soluzioni deve essere finito (l’insieme delle possibili configurazioni da verificare
deve essere finito)
La soluzione può essere rappresentata tramite una sequenza di soluzioni parziali s1, s2, ..., sn
La dimensione (massima) della soluzione – n – è nota a priori
Il valore di ciascuna sotto-soluzione si deve appartenere ad un insieme finito di valori
ALGORITMO GENERALE
In questi due schemi, basta implementare le funzioni canAdd, add, remove, next e isComplete per come
richiesto dalla formulazione del problema per poter realizzare una tecnica di backtracking.
pf3
pf4

Anteprima parziale del testo

Scarica APPUNTI - ALGORITMO DEL BACKTRAKING e più Appunti in PDF di Algoritmi E Strutture Di Dati solo su Docsity!

TECNICA DEL BACKTRACKING

E’ una tecnica che estende la tecnica di forza bruta (ricerca esaustiva) attraverso l’introduzione di alcuni controlli per verificare se la soluzione corrente è ammissibile ,ciò consente di ridurre lo spazio di ricerca. Nel caso peggiore tale tecnica ricade nella stessa complessità di una tecnica di forza bruta,in generale la complessità è sempre esponenziale.Una tipologia di problemi che possono essere facilmente risolvibili tramite questa tecnica sono i problemi riguardanti l’assegnazione di un valore, preso da un dominio, a ciascuno degli elementi di una soluzione. Al contrario del metodo di forza bruta, che effettua il controllo di ammissibilità solo quando l’ipotetica soluzione viene creata, la tecnica del BACKTRACKING verifica l’ammissibilità ogni qual volta viene inserito un elemento all’interno della soluzione. Per poter applicare la tecnica del Backtracking ad un problema devono valere le seguenti condizioni :  Lo spazio delle soluzioni deve essere finito (l’insieme delle possibili configurazioni da verificare deve essere finito)  La soluzione può essere rappresentata tramite una sequenza di soluzioni parziali s1, s2, ..., sn  La dimensione (massima) della soluzione – n – è nota a priori  Il valore di ciascuna sotto-soluzione si deve appartenere ad un insieme finito di valori

ALGORITMO GENERALE

In questi due schemi, basta implementare le funzioni canAdd, add, remove, next e isComplete per come richiesto dalla formulazione del problema per poter realizzare una tecnica di backtracking.

COLORAZIONE DI UNA MAPPA

L’idea è quella di andare ad utilizzare una successione di scelte parziali, verificando man mano l’ammissibilità del problema. Quando l’algoritmo si accorge che la soluzione non è ammissibile, esso torna indietro per ritrovare soluzioni alternative.

RISOLUZIONE

Input: Si suppone che la mappa sia rappresentata da una matrice di booleani G in cui ciascuna riga/colonna rappresenta un paese, e G[i,j]=true indica che i paesi i e j sono confinanti.Modelliamo i colori con un enum colors {Rosso=1, Verde, Blu} ; e quindi MIN_VAL=1 e MAX_VAL=3.La soluzione sol è quindi una lista di numeri (es. sol={1,2,1,3,2,3}) in cui sol[i] rappresenta il colore del paese i.

o  Array di bool