2011-09-25 11 views
8

I problemi decisionali non sono adatti per l'uso in algoritmi evolutivi poiché una semplice misura di forma fisica giusta/sbagliata non può essere ottimizzata/evoluta. Quindi, quali sono alcuni metodi/tecniche per convertire i problemi decisionali in problemi di ottimizzazione?Conversione di problemi decisionali in problemi di ottimizzazione? (algoritmi evolutivi)

Per esempio, sto attualmente lavorando su un problema in cui l'idoneità di un individuo dipende molto dall'output che produce. A seconda dell'ordine dei geni, un individuo non produce alcun output o output perfetto - nessun "in mezzo" (e quindi, nessuna collina da scalare). Un piccolo cambiamento nell'ordinamento genico di un individuo può avere un effetto drastico sulla forma fisica di un individuo, quindi l'uso di un algoritmo evolutivo equivale essenzialmente a una ricerca casuale.

Alcuni riferimenti bibliografici sarebbero carini se ne conoscete qualcuno.

+0

Tutte le uscite perfette sono ugualmente perfette? Tutte le uscite sono ugualmente verosimilmente prossime a un rendimento perfetto? –

+0

Per la tua prima domanda, sì. Per la tua seconda domanda, alcuni potrebbero essere più vicini a una soluzione perfetta in termini di struttura genetica, ma dal punto di vista della forma fisica, dato che non producono alcun output, hanno lo stesso cattivo stato di quelli che potrebbero non essere così vicini. –

+0

Sembra che tu abbia risposto alla tua stessa domanda: se non c'è una collina da scalare, qualsiasi forma di ottimizzazione delle scalate non riesce a ottenere alcuna trazione. A parte il generale sventolio di mano sull'incrementalismo e le soluzioni parziali, è difficile immaginare una soluzione generale possibile. –

risposta

1

Applicazione a più ingressi ed esame della percentuale di risposte corrette.

È vero, una misura di fitness giusta/sbagliata non può evolvere verso una maggiore correttezza, ma un algoritmo può comunque applicare una funzione mutabile a qualsiasi input necessario per produrre una decisione che sia giusta o sbagliata. Quindi, continui a mutare l'algoritmo e, per ogni versione mutata dell'algoritmo, la applichi a, ad esempio, a 100 input diversi, e controlli quanti di essi hanno avuto ragione. Quindi, selezioni quegli algoritmi che davano risposte più corrette di altri. Chissà, alla fine potresti vederne uno che li fa andare bene.

Non ci sono riferimenti bibliografici, l'ho appena inventato.

0

Beh penso che tu debba lavorare sulla tua funzione di fitness. Quando dici che alcuni individui sono più vicini a una soluzione perfetta, puoi identificare queste soluzioni in base alla loro struttura genetica? Se lo si può fare, anche un programma potrebbe farlo e quindi non si dovrebbe valutare l'individuo in base all'output ma alla sua struttura.