Quali sono i limiti dell'algoritmo di arrampicata su collina e come superarli?


Risposte:


6

Come @nbro ha già detto che Hill Climbing è una famiglia di algoritmi di ricerca locale . Quindi, quando hai detto Hill Climbing alla domanda, ho assunto che tu stia parlando dell'arrampicata su collina standard. La versione standard della salita ha alcune limitazioni e spesso si blocca nel seguente scenario:

  • Maxima locali: algoritmo di arrampicata su collina che raggiunge nelle vicinanze un valore massimo locale, viene attratto verso la vetta e rimane bloccato lì, senza altro posto dove andare .
  • Creste: sono sequenze di massimi locali , che rendono difficile la navigazione dell'algoritmo.
  • Plateaux: questa è una regione dello stato-stato piatta . Poiché non c'è salita in salita, l'algoritmo si perde spesso nell'altopiano.

Per risolvere questi problemi sono state sviluppate molte varianti degli algoritmi di salita. Questi sono più comunemente usati:

  • Stochastic Hill Climbing seleziona a caso dalle mosse in salita. La probabilità di selezione varia con la pendenza della mossa in salita.
  • L'arrampicata di prima scelta implementa la precedente generando i successori casualmente fino a quando non ne viene trovato uno migliore.
  • Riavvia in modo casuale le ricerche in salita da mosse iniziali generate casualmente fino a raggiungere lo stato obiettivo.

Il successo degli algoritmi di hill hill dipende dall'architettura del paesaggio dello spazio-stato. Ogni volta che ci sono pochi massimi e altipiani, le varianti degli algoritmi di ricerca in salita funzionano molto bene. Ma nel mondo reale i problemi hanno un paesaggio che assomiglia di più a una famiglia sparsa di istrici calvi su un pavimento piano, con istrici in miniatura che vivono sulla punta di ogni ago di istrice (come descritto nel 4 ° capitolo del libro Intelligenza artificiale: A Approccio moderno). I problemi NP-Hard in genere hanno un numero esponenziale di massimi locali su cui rimanere bloccati.
Sono stati sviluppati determinati algoritmi per superare questo tipo di problemi:

  • Ricottura stimolata
  • Ricerca del raggio locale
  • Algoritmi genetici

Riferimento Book - Intelligenza Artificiale: A Modern Approach


Ci sono più alternative disponibili per superare i problemi dell'arrampicata; vale a dire gruppi di permutazione, database di pattern e ricerca grammaticale. Stanno usando una conoscenza specifica del dominio per una ricerca più rapida nello spazio degli stati.
Manuel Rodriguez,

Sì @ManuelRodriguez. Gli algoritmi dipendenti dalla conoscenza specifica del dominio forniscono risultati eccellenti. Ma ho cercato di mantenere la risposta a problemi generici, citando alcuni dei modi in cui è possibile superare i limiti di Hill Climb Search.
Ugnes,

5

L'arrampicata non è un algoritmo, ma una famiglia di algoritmi di "ricerca locale". Algoritmi specifici che rientrano nella categoria degli algoritmi di "hill climbing" sono 2-opt, 3-opt, 2.5-opt, 4-opt o, in generale, qualsiasi N-opt. Vedi il capitolo 3 dell'articolo " Il problema del venditore ambulante: un caso di studio sull'ottimizzazione locale " (di David S. Johnson e Lyle A. McGeoch) per maggiori dettagli su alcuni di questi algoritmi di ricerca locale (applicati al TSP).

Ciò che differenzia un algoritmo in questa categoria dall'altro è la "funzione di vicinato" che usano (in parole semplici, il modo in cui trovano soluzioni vicine a una data soluzione). Si noti che, in pratica, non è sempre così: spesso questi algoritmi hanno implementazioni diverse.

Il limite più evidente degli algoritmi di arrampicata in collina è dovuto alla loro natura, cioè sono algoritmi di ricerca locali. Quindi di solito trovano solo i massimi (o minimi) locali. Quindi, se qualcuno di questi algoritmi è già converto in un minimo locale (o massimo) e, nella soluzione o nello spazio di ricerca, c'è, vicino a questa soluzione trovata, una soluzione migliore, nessuno di questi algoritmi sarà in grado di trovare questo soluzione migliore. Saranno sostanzialmente intrappolati.

Gli algoritmi di ricerca locale non vengono generalmente utilizzati da soli. Sono usati come sotto-routine di altri algoritmi meta-euristici, come ricottura simulata, ricerca iterata locale o in uno qualsiasi degli algoritmi di formica-colonia. Quindi, per superare i loro limiti, di solito non li usiamo da soli, ma li usiamo insieme ad altri algoritmi, che hanno una natura probabilistica e possono trovare minimi o massimi globali (ad esempio, uno qualsiasi degli algoritmi di formica-colonia).


Bella risposta (+1)! Puoi consigliare una risorsa (YouTube, post di blog, carta arxive, libro) per conoscere gli algoritmi di formicaio? Non ne ho mai sentito parlare e vorrei farne una vaga idea.
Martin Thoma,

1
@MartinThoma Temo di non conoscere un tutorial molto carino su ACS. Forse puoi iniziare con il seguente breve tutorial e l'implementazione corrispondente: cleveralgorithms.com/nature-inspired/swarm/… . Se anche tu sei interessato ad un'implementazione più seria, applicata al TSP, dai un'occhiata a questo: aco-metaheuristic.org/aco-code , implementato da Stützle (e altri), uno dei contributori allo sviluppo di queste tecniche.
nbro

Il richiedente sa quale sia la definizione formale di alpinismo perché ha letto l'articolo di Wikipedia. La domanda va più nella direzione di come usarla per l'intelligenza artificiale. È noto che l'arrampicata in collina può solo cercare nello spazio locale, il che rende difficile i problemi legati all'intelligenza artificiale. Di solito la ricerca si blocca in un optima locale, il che significa che non è possibile trovare il percorso più breve nel problema del commesso viaggiatore.
Manuel Rodriguez,

1
@MartinThoma Ad ogni modo, puoi anche dare un'occhiata ai documenti di ricerca. Posso solo dirti alcuni importanti ricercatori: Dorigo (il primo che ha introdotto queste tecniche, AFAIK), Gambardella e Stützle. Guarda i loro documenti. Non sono sicuro di quale suggerire. Inoltre, c'è un libro dedicato all'intelligenza dello sciame (di Bonabeau), se vuoi davvero entrare nei dettagli.
nbro
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.