Evolution nel tuo codice comprensione e codifica dell’algoritmo genetico da zero – Parte 1

Evolution Understanding and Coding Genetic Algorithm from Scratch - Part 1

Comprensione e Creazione del Codice da Zero

Introduzione – L’ispirazione dietro l’algoritmo

Foto di Johannes Plenio su Unsplash

Hai mai osservato la natura e ti sei chiesto come gli organismi si siano evoluti, adattati e sopravvissuti nel corso dei millenni? Cosa ne pensi se ti dicessi che tu, seduto davanti al tuo computer, hai il potere di simulare un processo simile di evoluzione, non in millenni, ma in pochi secondi? Questo è ovviamente possibile grazie agli algoritmi genetici.

Il concetto di “algoritmo genetico” (GA) esiste fin dagli anni ’60, quando John Holland dell’Università del Michigan lo ha scoperto.

Il percorso di Holland non è iniziato cercando di replicare l’evoluzione nei computer. Invece, il suo obiettivo era capire perché e come i sistemi naturali potessero mostrare una tale adattabilità intrinseca. I suoi studi hanno portato alla creazione di sistemi di classificazione, un sistema strutturato di apprendimento automatico che può evolversi nel tempo.

Ora, potresti chiederti: “Non è questo l’apprendimento automatico?” Beh, sì e no. Sebbene i sistemi di classificazione mostrino un comportamento “di apprendimento”, sono piuttosto diversi da ciò che normalmente associamo all’apprendimento automatico moderno. I sistemi di classificazione funzionano creando, combinando e testando un insieme di regole. Nel tempo, le regole di successo (quelle che aiutano il sistema a funzionare meglio) vengono rinforzate, mentre quelle meno efficaci vengono eliminate. L’intero processo è analogo a quello dell’evoluzione.

Anche se inizialmente utilizzati per risolvere problemi matematici astratti, l’efficacia dei GA nel risolvere problemi complessi è stata presto riconosciuta, rendendo i GA uno degli algoritmi più utilizzati per risolvere anche problemi di ottimizzazione complicati.

In questa serie, risolveremo il problema dello zaino utilizzando i principi degli algoritmi genetici.

Il Problema dello Zaino: Il Dilemma del Viaggiatore

Il problema dello zaino è un famoso problema combinatorio che spesso viene utilizzato come esempio di ottimizzazione.

Immagina di prepararti per una vacanza all’estero. La tua compagnia aerea ha un limite di peso per il bagaglio molto rigido, e superarlo sarebbe costoso. La tua valigia può contenere una varietà di…