Risposte:
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:
Per risolvere questi problemi sono state sviluppate molte varianti degli algoritmi di salita. Questi sono più comunemente usati:
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:
Riferimento Book - Intelligenza Artificiale: A Modern Approach
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).