Dopo aver giocato troppo ad Angry Birds, ho iniziato ad osservare le mie strategie. Si scopre che ho sviluppato un approccio molto specifico per ottenere 3 stelle su ogni livello.
Ciò mi ha fatto riflettere sulle sfide dello sviluppo di un sistema di apprendimento automatico in grado di riprodurre Angry Birds. Interagire con il gioco e lanciare gli uccelli è banale. Ma una domanda che ho avuto riguarda i "mattoni" del sistema.
I sistemi di apprendimento automatico sembrano funzionare con concetti semplici o comprensione del problema. Questo è spesso codificato come funzionalità come input. Quindi sembra che il sistema debba avere la capacità di comprendere alcuni concetti di alto livello per generare una strategia.
È vero? Inoltre, quali sono le sfide o le parti difficili dello sviluppo di un tale sistema?
EDIT # 1:
Ecco alcuni chiarimenti. Ottenere 3 stelle è un problema difficile perché devi massimizzare i punti. Questo può essere fatto in due modi non esclusivi: 1) Riducendo al minimo il numero di uccelli utilizzati (ottieni 10.000 punti per ogni uccello inutilizzato). 2) Massimizzata la distruzione di vetro, legno e altri oggetti. Ogni oggetto distrutto ti dà punti. È possibile distruggere più di 10.000 punti di oggetti con un singolo uccello.
Ecco una spiegazione in più sui "concetti di alto livello". Al fine di massimizzare i punti sopra descritti, è necessario utilizzare i poteri speciali di ciascun uccello. Quindi, ciò significa lanciare diversi uccelli con traiettorie diverse, a seconda del layout della mappa. E, mentre gioco, sviluppo una strategia che distrugge determinate aree con determinati uccelli in un certo ordine.
Sembra che senza una comprensione di come utilizzare ogni uccello per distruggere un'area specifica il sistema non potrebbe imparare a ottenere 3 stelle. Quindi, come gestisci e codifichi qualcosa del genere? Come assicurate che il sistema possa apprendere questi concetti di alto livello?