79

Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Embed Size (px)

Citation preview

Page 1: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Ñåðãåé Íèêîëåíêî

Machine Learning CS Club, âåñíà 2008

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 2: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Outline

1 Îñíîâíàÿ èäåÿ

Èäåÿ

Ïðåäñòàâëåíèå äàííûõ

Ãåíåòè÷åñêèå îïåðàöèè

Àëãîðèòì

2 Ãåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Îñíîâíàÿ èäåÿ

Íà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìà

Ãåíåòè÷åñêèå îïåðàöèè

Ïðèìåð

3 Äðóãèå ñþæåòû

Ëàìàðê è Áîëäóèí

Îïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼â

Àëãîðèòì èìèòàöèè îòæèãà

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 3: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Ýâîëþöèÿ

Ãåíåòè÷åñêèå àëãîðèòìû òîæå ñïèñàíû ñ ïðèðîäû.

Îðãàíèçìû ýâîëþöèîíèðóþò ñî âðåìåíåì, èçìåíÿÿ ñâîé

ãåíîòèï.

Ìåõàíèçì äàðâèíîâñêîé ýâîëþöèè:

Ðîäèëîñü íîâîå ïîêîëåíèå.

Èç íåãî ÷àñòü îñîáåé âûðîñëà è äàëà ïîòîìñòâî, ÷àñòü

ïîãèáëà.

Ïîãèáàþò íåïðèñïîñîáëåííûå, âûæèâàþò

ïðèñïîñîáëåííûå, ó ïîòîìêîâ îñòàþòñÿ ëó÷øèå ÷åðòû.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 4: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Îñíîâíûå êîìïîíåíòû

Ïðîñòðàíñòâî ãèïîòåç, èç êîòîðûõ ìû äîëæíû âûáðàòü

ëó÷øóþ

Ôóíêöèÿ ïðèñïîñîáëåííîñòè Fitness

Íàáîð ãåíåòè÷åñêèõ îïåðàöèé, êîòîðûå ìîæíî ïðèìåíÿòü:

Îïåðàöèè ñêðåùèâàíèÿ (êðîññîâåð) ðàçìíîæåíèå

îñîáåé.

Ìóòàöèè ðåäêèå èçìåíåíèÿ îòäåëüíûõ îñîáåé.

Öåëåâîå çíà÷åíèå Fitnessmax , ê êîòîðîìó ìû ñòðåìèìñÿ

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 5: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Îáùàÿ ñõåìà àëãîðèòìà

Ñãåíåðèðîâàòü íà÷àëüíóþ ïîïóëÿöèþ.

Ïîêà íå äîñòèãíóòî çíà÷åíèå, áîëüøåå Fitnessmax:

Âûáðàòü ÷àñòü ñóùåñòâóþùåé ïîïóëÿöèè (îòäàâàÿ

ïðåäïî÷òåíèå áîëåå ïðèñïîñîáëåííûì îñîáÿì).

Ïðèìåíèòü ê ýòîé ÷àñòè ãåíåòè÷åñêèå îïåðàöèè, ïîðîäèâ

ïîòîìêîâ.

Ïîäñ÷èòàòü Fitness äëÿ îñîáåé íîâîé ïîïóëÿöèè.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 6: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Ïðåäñòàâëåíèå ãèïîòåç

×òîáû óñïåøíî ïðèìåíÿòü ãåíåòè÷åñêèå àëãîðèòìû, ãèïîòåçû

æåëàòåëüíî ïðåäñòàâëÿòü â âèäå ñòðîêè áèòîâ. Òîãäà ñ íèìè

ëåãêî äåëàòü ÷òî óãîäíî. Íî êàê ïðåäñòàâëÿòü?

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 7: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Ïðåäñòàâëåíèå ãèïîòåç: ïðèìåð

Âñïîìíèì ïðèìåð äåðåâà

ïðèíÿòèÿ ðåøåíèé.

Ãèïîòåçà, îíà æå îñîáü

ïîïóëÿöèè ýòî â äàííîì

ñëó÷àå ïðàâèëî, îïèñûâàþùåå

ïîâåäåíèå öåëåâîé ôóíêöèè. À

Fitness ýòî òî, íàñêîëüêî

õîðîøî ïðàâèëî ñîîòâåòñòâóåò

òåñòîâûì ïðèìåðàì.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 8: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Ïðåäñòàâëåíèå ãèïîòåç: ïðèìåð

Íàïðèìåð, äëÿ ôóíêöèè,

çàäàííîé ýòèì äåðåâîì,

ãèïîòåçà

(x1 = 0) ∧ (x2 = 1) =⇒ (f = 0)

áóäåò áîëåå ïðèñïîñîáëåííîé,

÷åì ãèïîòåçà

(x1 = 0) =⇒ (f = 0).

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 9: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Ïðåäñòàâëåíèå ãèïîòåç: ïðèìåð

Êàê çàäàòü ãèïîòåçó ñòðîêîé èç

áèò?

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 10: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Ïðåäñòàâëåíèå ãèïîòåç: ïðèìåð

Êàê çàäàòü ãèïîòåçó ñòðîêîé èç

áèò?

Ëîãè÷íàÿ èäåÿ: çàêîäèðîâàòü

êàæäóþ áóëåâñêóþ ïåðåìåííóþ

áèòîì; íàïðèìåð, ãèïîòåçà

(x1 = 1)∧(x2 = 0)∧(x3 = 1) ⇒⇒ (f = 1)

ïðåäñòàâëÿåòñÿ êàê

x1 x2 x3 f

1 0 1 1

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 11: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Ïðåäñòàâëåíèå ãèïîòåç: ïðèìåð

Íî êàê òîãäà çàêîäèðîâàòü

ãèïîòåçó

(x1 = 0) ∧ (x2 = 1) ⇒ (f = 0)?

x1 x2 x3 f

0 1 ??? 0

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 12: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Ïðåäñòàâëåíèå ãèïîòåç

Îáû÷íî äëÿ êîäèðîâàíèÿ ãèïîòåç èñïîëüçóþò ïî îäíîìó áèòó

íà êàæäîå çíà÷åíèå àòðèáóòà; åñëè ñòîèò 1, çíà÷èò, ýòî

çíà÷åíèå ó÷àñòâóåò â ïîñûëêå ãèïîòåçû; çíà÷åíèÿ îäíîãî è òîãî

æå àòðèáóòà ñîåäèíÿþòñÿ, êîíå÷íî, êàê OR.

x1 x2 x3 f

10 01 11 1

Ñòðîêà 11 çíà÷èò, ÷òî íà ýòîò àòðèáóò ìîæíî íå îáðàùàòü

âíèìàíèÿ. À äëÿ öåëåâîé ôóíêöèè ìîæíî îñòàâèòü îäèí áèò

ãèïîòåçà ñî ñëåäñòâèåì ¾áóäåò êàêîå-òî çíà÷åíèå¿ íå èìååò

ñìûñëà.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 13: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Ãèïîòåçû èç íåñêîëüêèõ ïðàâèë

Äî ñèõ ïîð ìû êîäèðîâàëè

îäíî ïðàâèëî (îäíó âåòêó

äåðåâà). Íî, íàïðèìåð, ýòî

äåðåâî ñîîòâåòñòâóåò

íåñêîëüêèì ïðàâèëàì. Èõ ìû

áóäåì çàïèñûâàòü ïðîñòîé

êîíêàòåíàöèåé ñòðîê.

Óïðàæíåíèå. Âûðàçèòü ýòî

äåðåâî áèòîâîé ñòðîêîé ïî

íàøåé ñõåìå.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 14: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Êðîññîâåð

Ïðè ðàçìíîæåíèè îñîáü äîëæíà óíàñëåäîâàòü ÷åðòû îáîèõ

ïðåäêîâ. Êàê ýòîãî äîñòè÷ü íà áèòîâûõ ñòðîêàõ?

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 15: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Êðîññîâåð

Ïðè ðàçìíîæåíèè îñîáü äîëæíà óíàñëåäîâàòü ÷åðòû îáîèõ

ïðåäêîâ. Êàê ýòîãî äîñòè÷ü íà áèòîâûõ ñòðîêàõ?

Êðîññîâåð (crossover) îïåðàöèÿ, êîòîðàÿ ïî çàäàííîé

ìàñêå äåëàåò èç äâóõ ñòðîê îäíó.

Åñòü íåñêîëüêî ðàçíûõ âèäîâ êðîññîâåðà.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 16: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Âèäû êðîññîâåðà

Single-point crossover:

Èñõîäíûå ñòðîêè Ìàñêà Ðåçóëüòàò

1001101011

0010101100 1111100000 1001101100

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 17: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Âèäû êðîññîâåðà

Double-point crossover

Èñõîäíûå ñòðîêè Ìàñêà Ðåçóëüòàò

1001101011

0010101100 0001111100 0010101100

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 18: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Âèäû êðîññîâåðà

Uniform crossover

Èñõîäíûå ñòðîêè Ìàñêà Ðåçóëüòàò

1001101011

0010101100 0110100110 0000101010

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 19: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Êðîññîâåð íà ñòðîêàõ ïåðåìåííîé äëèíû

Âñå ýòè âèäû äëÿ ñòðîê îäèíàêîâîé äëèíû. Íî íàøè

ãèïîòåçû èç íåñêîëüêèõ ïðàâèë, è ñòðîêè ðàçíîé äëèíû.

×òî äåëàòü?

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 20: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Êðîññîâåð íà ñòðîêàõ ïåðåìåííîé äëèíû

Ðåøåíèå:

Èñïîëüçóåì double-point crossover òàê, ÷òîáû ñîõðàíÿòü

ïîñòîÿííîå ðàññòîÿíèå äî êðà¼â ïðàâèë.

Íàïðèìåð, ïðàâèëà äëèíû 5, è ìû ñëó÷àéíî âûáðàëè äâå

òî÷êè èç ãèïîòåçû

0[0101 110]10.

Òîãäà âî âòîðîé ãèïîòåçå íóæíî âûáèðàòü òàêèå òî÷êè,

÷òîáû ðàññòîÿíèå îò ëåâîé òî÷êè äî ëåâîãî êðàÿ ïðàâèëà è

îò ïðàâîé òî÷êè äî ïðàâîãî êðàÿ ïðàâèëà áûëè òåìè æå.

Íàïðèìåð, â ïðàâèëå äëèíû 15 ìîãóò áûòü âàðèàíòû:

1[10]11 01010 01110 1[1011 010]10 01110

1[1011 01010 011]10 11011 0[10]10 01110

11011 0[1010 011]10 11011 01010 0[11]10Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 21: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Êðîññîâåð íà ñòðîêàõ ïåðåìåííîé äëèíû

Òåïåðü êðîññîâåð áóäåò ïîðîæäàòü êîððåêòíûå ãèïîòåçû:Èñõîäíûå ñòðîêè Ðåçóëüòàò

0[0101 110]10 01010

1[10]11 01010 01110 10101 11011 01010 01110

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 22: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Ìóòàöèè

Ìóòàöèè íà áèòîâûõ ñòðîêàõ:

Èçìåíèòü îäèí ñëó÷àéíûé áèò.

Ñäåëàòü íåñóùåñòâåííûì (çàáèòü åäèíè÷êàìè) îäèí

ñëó÷àéíûé àòðèáóò.

...

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 23: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Fitness

Ôóíêöèÿ Fitness äîëæíà çàâèñåòü îò òîãî, íàñêîëüêî

õîðîøî ãèïîòåçà ñïðàâëÿåòñÿ ñ çàäà÷åé.

 ñëó÷àå çàäà÷è êëàññèôèêàöèè ðàçóìíàÿ ôóíêöèÿ:

Fitness(h) =

(Correct(h)

TotalExamples

)2

,

ãäå Correct(h) êîëè÷åñòâî ïðèìåðîâ, âåðíî

ðàñêëàññèôèöèðîâàííûõ ãèïîòåçîé h, TotalExamples

îáùåå êîëè÷åñòâî ïðèìåðîâ.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 24: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Âñïîìíèì îáùóþ ñõåìó

Ñãåíåðèðîâàòü íà÷àëüíóþ ïîïóëÿöèþ.

Ïîêà íå äîñòèãíóòî çíà÷åíèå, áîëüøåå Fitnessmax :

Âûáðàòü ÷àñòü ñóùåñòâóþùåé ïîïóëÿöèè (îòäàâàÿ

ïðåäïî÷òåíèå áîëåå ïðèñïîñîáëåííûì îñîáÿì).

Ïðèìåíèòü ê ýòîé ÷àñòè ãåíåòè÷åñêèå îïåðàöèè, ïîðîäèâ

ïîòîìêîâ.

Ïîäñ÷èòàòü Fitness äëÿ îñîáåé íîâîé ïîïóëÿöèè.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 25: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

×òî îñòàëîñü

Ìû óæå íàó÷èëèñü:

Äåëàòü êðîññîâåð.

Ìóòèðîâàòü.

Ïîäñ÷èòûâàòü ôóíêöèþ Fitness.

Îñòàëîñü

Íàó÷èòüñÿ âûáèðàòü ñàìûõ ïðèñïîñîáëåííûõ.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 26: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Âûáîð ñàìûõ ïðèñïîñîáëåííûõ

Çàäà¼ì äîëþ âûæèâøèõ s îñòàëüíàÿ ÷àñòü ïîïóëÿöèè

áóäåò çàìåíåíà íà ðåçóëüòàòû êðîññîâåðà äðóãîé ÷àñòè.

Íóæíî âûáðàòü sN ãèïîòåç èç ïîïóëÿöèè ðàçìåðà N.

Ìåòîä ðóëåòêè (roulette wheel selection): ó êàæäîé ãèïîòåçû

hi âåðîÿòíîñòü áûòü âûáðàííîé

Pr(hi ) =Fitness(hi )∑Nj=1 Fitness(hj)

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 27: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Âûáîð ñàìûõ ïðèñïîñîáëåííûõ

Çàäà¼ì äîëþ âûæèâøèõ s îñòàëüíàÿ ÷àñòü ïîïóëÿöèè

áóäåò çàìåíåíà íà ðåçóëüòàòû êðîññîâåðà äðóãîé ÷àñòè.

Íóæíî âûáðàòü sN ãèïîòåç èç ïîïóëÿöèè ðàçìåðà N.

Òóðíèðíûé ìåòîä (tournament selection): ñëó÷àéíî

âûáèðàåì äâå ãèïîòåçû. Ñ ôèêñèðîâàííîé âåðîÿòíîñòüþ p

âûæèâàåò áîëåå ïðèñïîñîáëåííàÿ, ñ âåðîÿòíîñòüþ 1 − p

ìåíåå ïðèñïîñîáëåííàÿ.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 28: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Âûáîð ñàìûõ ïðèñïîñîáëåííûõ

Çàäà¼ì äîëþ âûæèâøèõ s îñòàëüíàÿ ÷àñòü ïîïóëÿöèè

áóäåò çàìåíåíà íà ðåçóëüòàòû êðîññîâåðà äðóãîé ÷àñòè.

Íóæíî âûáðàòü sN ãèïîòåç èç ïîïóëÿöèè ðàçìåðà N.

Ðàíãîâûé ìåòîä (ranking selection): ñíà÷àëà ñîðòèðóåì

ãèïîòåçû ïî ïðèñïîñîáëåííîñòè. Çàòåì êàê â ìåòîäå

ðóëåòêè, íî âåðîÿòíîñòü âûæèòü ïðîïîðöèîíàëüíà íå

çíà÷åíèþ Fitness(h), à ìåñòó, êîòîðîå çàíÿëà ãèïîòåçà.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 29: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Âûáîð ñàìûõ ïðèñïîñîáëåííûõ

Çàäà¼ì äîëþ âûæèâøèõ s îñòàëüíàÿ ÷àñòü ïîïóëÿöèè

áóäåò çàìåíåíà íà ðåçóëüòàòû êðîññîâåðà äðóãîé ÷àñòè.

Íóæíî âûáðàòü sN ãèïîòåç èç ïîïóëÿöèè ðàçìåðà N.

Ìû áóäåì èñïîëüçîâàòü ìåòîä ðóëåòêè.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 30: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

ÈäåÿÏðåäñòàâëåíèå äàííûõÃåíåòè÷åñêèå îïåðàöèèÀëãîðèòì

Àëãîðèòì

Genetic(N, p, s,m,Fitness,Fitnessmax)

Ñîçäàòü N ñëó÷àéíûõ ãèïîòåç H = h1, . . . , hn.

Äëÿ êàæäîé ãèïîòåçû h ∈ H âû÷èñëèòü Fitness(h).

Ïîêà maxh Fitness(h) < Fitnessmax:

H ′ = ∅.Ñëó÷àéíî âûáðàòü sN ãèïîòåç èç H è äîáàâèòü èõ â H ′.

Âåðîÿòíîñòü âûáðàòü ãèïîòåçó hi Pr(hi ) =Fitness(hi )∑Nj=1

Fitness(hj ).

Ñëó÷àéíî âûáðàòü (1−s)p2

ïàð ãèïîòåç èç H ñ òåìè æå

âåðîÿòíîñòÿìè. Äëÿ êàæäîé ïàðû (hi , hj) çàïóñòèòü

îïåðàöèþ êðîññîâåðà è äîáàâèòü å¼ ðåçóëüòàò â H ′.

Ðàâíîìåðíî âûáðàòü mN ñëó÷àéíûõ ãèïîòåç èç H ′ è â

êàæäîé èç íèõ èíâåðòèðîâàòü ñëó÷àéíûé áèò.

H = H ′.

Äëÿ êàæäîé ãèïîòåçû h ∈ H âû÷èñëèòü Fitness(h).

Âûäàòü argmaxhFitness(h).Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 31: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Îñíîâíàÿ èäåÿÍà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìàÃåíåòè÷åñêèå îïåðàöèèÏðèìåð

Outline

1 Îñíîâíàÿ èäåÿ

Èäåÿ

Ïðåäñòàâëåíèå äàííûõ

Ãåíåòè÷åñêèå îïåðàöèè

Àëãîðèòì

2 Ãåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Îñíîâíàÿ èäåÿ

Íà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìà

Ãåíåòè÷åñêèå îïåðàöèè

Ïðèìåð

3 Äðóãèå ñþæåòû

Ëàìàðê è Áîëäóèí

Îïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼â

Àëãîðèòì èìèòàöèè îòæèãà

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 32: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Îñíîâíàÿ èäåÿÍà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìàÃåíåòè÷åñêèå îïåðàöèèÏðèìåð

Èñòîðèÿ

Åù¼ Òüþðèíã ïèñàë î ãåíåðàöèè ïðîãðàìì ïîñðåäñòâîì

ìóòàöèé è åñòåñòâåííîãî îòáîðà.

Çàòåì îá ýòîì âñïîìíèëè â ñåðåäèíå 1980-õ, áûëà

ðàçðàáîòàíà îñíîâíàÿ ïàðàäèãìà.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 33: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Îñíîâíàÿ èäåÿÍà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìàÃåíåòè÷åñêèå îïåðàöèèÏðèìåð

Óñïåõè ãåíåòè÷åñêîãî ïðîãðàììèðîâàíèÿ

Áûë ïîëó÷åí ðÿä ðåçóëüòàòîâ, êîòîðûå âïîëíå ìîãóò

ñîïåðíè÷àòü ñ ÷åëîâå÷åñêèìè.

Íàïðèìåð, â 2002 ãîäó áûëè ðàçðàáîòàíû òðè

àâòîìàòè÷åñêèõ êîíòðîëëåðà, êîòîðûå áûëè ëó÷øå, ÷åì

âñå ðàíåå èçâåñòíûå. Íà ýòè êîíòðîëëåðû ïîäàíà

ïàòåíòíàÿ çàÿâêà, êîòîðóþ, ñêîðåå âñåãî, óäîâëåòâîðÿò.

Ôàêòè÷åñêè, ãåíåòè÷åñêîå ïðîãðàììèðîâàíèå óæå ìîæåò

ñîâåðøàòü íàñòîÿùèå îòêðûòèÿ.

Ñì. http://www.genetic-programming.com

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 34: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Îñíîâíàÿ èäåÿÍà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìàÃåíåòè÷åñêèå îïåðàöèèÏðèìåð

Ãåíåòè÷åñêèå àëãîðèòìû

Âñïîìíèì ñõåìó ãåíåòè÷åñêîãî àëãîðèòìà:

Ñãåíåðèðîâàòü íà÷àëüíóþ ïîïóëÿöèþ.

Ïîêà íå äîñòèãíóòî çíà÷åíèå, áîëüøåå Fitnessmax:

Âûáðàòü ÷àñòü ñóùåñòâóþùåé ïîïóëÿöèè (îòäàâàÿ

ïðåäïî÷òåíèå áîëåå ïðèñïîñîáëåííûì îñîáÿì).

Ïðèìåíèòü ê ýòîé ÷àñòè ãåíåòè÷åñêèå îïåðàöèè, ïîðîäèâ

ïîòîìêîâ.

Ïîäñ÷èòàòü Fitness äëÿ îñîáåé íîâîé ïîïóëÿöèè.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 35: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Îñíîâíàÿ èäåÿÍà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìàÃåíåòè÷åñêèå îïåðàöèèÏðèìåð

Ãåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Ãåíåòè÷åñêîå ïðîãðàììèðîâàíèå ïðèìåíåíèå

ãåíåòè÷åñêèõ àëãîðèòìîâ, ïîïóëÿöèåé êîòîðûõ ÿâëÿþòñÿ

ïðîãðàììû (àëãîðèòìû).

Ò.å. ôàêòè÷åñêè ìû óæå çíàåì, ÷òî äåëàòü. Äàâàéòå

êîíêðåòèçèðóåì.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 36: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Îñíîâíàÿ èäåÿÍà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìàÃåíåòè÷åñêèå îïåðàöèèÏðèìåð

Íà÷àëüíûå äàííûå

Ìû áóäåì ñòðîèòü ïðîãðàììó êàê äåðåâî. ×åëîâåê äîëæåí

óêàçàòü:

Íàáîð òåðìèíàëîâ íåçàâèñèìûõ ïåðåìåííûõ, íóëüàðíûõ

ôóíêöèé, êîíñòàíò êîòîðûå áóäóò ñòîÿòü â ëèñòüÿõ

äåðåâà.

Íàáîð ïðèìèòèâíûõ ôóíêöèé, êîòîðûå áóäóò â äðóãèõ

óçëàõ äåðåâà.

Ìåðó ïðèñïîñîáëåííîñòè (tness measure).

Ïàðàìåòðû çàïóñêà ïðîãðàììû (óâèäèì íèæå).

Êðèòåðèé îñòàíîâêè è öåëü âñåãî ïðîöåññà.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 37: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Îñíîâíàÿ èäåÿÍà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìàÃåíåòè÷åñêèå îïåðàöèèÏðèìåð

Áîëåå ïîäðîáíàÿ ñõåìà

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 38: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Îñíîâíàÿ èäåÿÍà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìàÃåíåòè÷åñêèå îïåðàöèèÏðèìåð

Ñëó÷àéíîå ïîðîæäåíèå

Ñëó÷àéíî âûáèðàåì óçëû èç ñïèñêà, âêëþ÷àÿ òåðìèíàëû,

à çàòåì ãåíåðèðóåì ñëåäóþùèå óðîâíè íà îñíîâå àðíîñòè

âûáðàííûõ ôóíêöèé.

Ìîæíî çàäàòü ìàêñèìàëüíóþ ãëóáèíó.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 39: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Îñíîâíàÿ èäåÿÍà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìàÃåíåòè÷åñêèå îïåðàöèèÏðèìåð

Ìóòàöèÿ

Âûáðàòü ñëó÷àéíûé óçåë è âûðàñòèòü èç íåãî íîâóþ

ñëó÷àéíóþ ïðîãðàììó.

Óçåë íå îáÿçàòåëüíî äîëæåí áûòü ëèñòîì

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 40: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Îñíîâíàÿ èäåÿÍà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìàÃåíåòè÷åñêèå îïåðàöèèÏðèìåð

Êðîññîâåð

Âûáðàòü äâå ñëó÷àéíûå ïðîãðàììû.

Âûáðàòü â íèõ äâà ñëó÷àéíûõ óçëà è ïîìåíÿòü ìåñòàìè

ïîääåðåâüÿ, ðàñòóùèå èç ýòèõ óçëîâ

Âàðèàíò: îäíó èç ïðîãðàìì íå òðîãàòü, òîëüêî ñêîïèðîâàòü

å¼ ïîääåðåâî âî âòîðóþ.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 41: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Îñíîâíàÿ èäåÿÍà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìàÃåíåòè÷åñêèå îïåðàöèèÏðèìåð

Êðîññîâåð

Âûáðàòü äâå ñëó÷àéíûå ïðîãðàììû.

Âûáðàòü â íèõ äâà ñëó÷àéíûõ óçëà è ïîìåíÿòü ìåñòàìè

ïîääåðåâüÿ, ðàñòóùèå èç ýòèõ óçëîâ

Âàðèàíò: îäíó èç ïðîãðàìì íå òðîãàòü, òîëüêî ñêîïèðîâàòü

å¼ ïîääåðåâî âî âòîðóþ.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 42: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Îñíîâíàÿ èäåÿÍà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìàÃåíåòè÷åñêèå îïåðàöèèÏðèìåð

Ïîñòàíîâêà çàäà÷è

Áóäåì ðåàëèçîâûâàòü ïðîãðàììó, ïîäñ÷èòûâàþùóþ

ôóíêöèþ x2 + x + 1.

Ìíîæåñòâî òåðìèíàëîâ îäíà ïåðåìåííàÿ x è êîíñòàíòû

(íàïðèìåð, îò −5 äî 5).

Ìíîæåñòâî ýëåìåíòàðíûõ ôóíêöèé +,−, ∗,%.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 43: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Îñíîâíàÿ èäåÿÍà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìàÃåíåòè÷åñêèå îïåðàöèèÏðèìåð

Ïîñòàíîâêà çàäà÷è

Êàêóþ âûáðàòü ôóíêöèþ îøèáêè?

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 44: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Îñíîâíàÿ èäåÿÍà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìàÃåíåòè÷åñêèå îïåðàöèèÏðèìåð

Ïîñòàíîâêà çàäà÷è

Êàêóþ âûáðàòü ôóíêöèþ îøèáêè?

Ôóíêöèÿ îøèáêè èíòåãðàë îò ðàçíîñòè ìåæäó

ôóíêöèåé, êîòîðóþ ðåàëèçóåò ïðîãðàììà èç ïîïóëÿöèè, è

öåëåâîé ôóíêöèåé x2 + x + 1.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 45: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Îñíîâíàÿ èäåÿÍà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìàÃåíåòè÷åñêèå îïåðàöèèÏðèìåð

Ïåðâûé øàã

Ñãåíåðèðîâàëè ñëó÷àéíóþ ïîïóëÿöèþ:

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 46: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Îñíîâíàÿ èäåÿÍà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìàÃåíåòè÷åñêèå îïåðàöèèÏðèìåð

Ïåðâûé øàã

ż ïðèñïîñîáëåííîñòü äàëåêà îò èäåàëà:

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 47: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Îñíîâíàÿ èäåÿÍà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìàÃåíåòè÷åñêèå îïåðàöèèÏðèìåð

Âòîðîé øàã

Âûáðàëè (a) äëÿ âîñïðîèçâîäñòâà.

Âûáðàëè (c) äëÿ ìóòàöèè, ïîìåíÿëè 2 íà äåðåâî,

ïîäñ÷èòûâàþùåå (x%x).

Âûáðàëè (a) è (b) äëÿ êðîññîâåðà, ïîìåíÿëè ìåñòàìè

äåðåâî ñ êîðíåì â + è x .

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 48: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Îñíîâíàÿ èäåÿÍà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìàÃåíåòè÷åñêèå îïåðàöèèÏðèìåð

Ïîñëå âòîðîãî øàãà

Ïîëó÷èëîñü:

Îñòàëîñü ïîäñ÷èòàòü ôóíêöèþ ïðèñïîñîáëåííîñòè íîâîé

ïîïóëÿöèè è óáåäèòüñÿ, ÷òî â íåé åñòü èäåàëüíàÿ îñîáü.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 49: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Outline

1 Îñíîâíàÿ èäåÿ

Èäåÿ

Ïðåäñòàâëåíèå äàííûõ

Ãåíåòè÷åñêèå îïåðàöèè

Àëãîðèòì

2 Ãåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Îñíîâíàÿ èäåÿ

Íà÷àëüíûå äàííûå è ïîäðîáíàÿ ñõåìà

Ãåíåòè÷åñêèå îïåðàöèè

Ïðèìåð

3 Äðóãèå ñþæåòû

Ëàìàðê è Áîëäóèí

Îïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼â

Àëãîðèòì èìèòàöèè îòæèãà

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 50: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Ëàìàðê

Æàí Áàòèñò Ïüåð Àíòóàí äå Ìîíå, øåâàëüå äå Ëàìàðê

(17441829) ñîçäàë ïåðâóþ òåîðèþ áèîëîãè÷åñêîé

ýâîëþöèè.

Ó Ëàìàðêà îðãàíèçìû èçìåíÿëèñü ïîä âîçäåéñòâèåì

îêðóæàþùåé ñðåäû è óñëîâèé èõ æèçíåäåÿòåëüíîñòè.

Áèîëîãè÷åñêè Äàðâèí âñ¼-òàêè áûë ïðàâ. Íî äëÿ

ìàøèííîãî îáó÷åíèÿ ìîæíî è òàêèå ìåòîäû èñïîëüçîâàòü:

ïðîãðàììêè îáó÷àþòñÿ ïî õîäó æèçíè è ïåðåäàþò ýòî

ïîòîìêàì.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 51: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Áîëäóèí

Ýôôåêò Áîëäóèíà âîçíèêàåò, êîãäà íóæíî ó÷åñòü

îáó÷àåìîñòü îñîáåé â ïîïóëÿöèè.

Âìåñòî òðåòüåé ðóêè ìîæíî âûðàùèâàòü ñåáå ìîçã,

êîòîðûé áóäåò ëó÷øå óïðàâëÿòü ïåðâûìè äâóìÿ.

À ïðè âûñîêîé îáó÷àåìîñòè (÷åëîâåê, íàïðèìåð) ãåíîòèï

èãðàåò î÷åíü ìàëåíüêóþ ðîëü.

Íåêèé tradeo ìåæäó ïðèñïîñîáëåííîñòüþ è îáó÷àåìîñòüþ

ìîæíî èññëåäîâàòü è â ìàøèííîì îáó÷åíèè.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 52: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Ýôôåêò Áîëäóèíà è íåéðîííûå ñåòè

Äàâàéòå ïðèìåíèì ýòî ê äâóì èçâåñòíûì íàì ìåòîäàì:

íåéðîííûì ñåòÿì è ãåíåòè÷åñêèì àëãîðèòìàì.

Îñîáü íåéðîííàÿ ñåòü ãëóáèíû 2 ñ N âõîäàìè, M

íåéðîíàìè íà ñêðûòîì óðîâíå è N íåéðîíàìè íà âûõîäå.

Ó òàêîé îñîáè îáðàçóþòñÿ (N + 1)M + (M + 1)N ãåíîâ,

ñîîòâåòñòâóþùèõ âåñàì íåéðîííîé ñåòè.

Ïëþñ åù¼ ñòîëüêî æå áèíàðíûõ ãåíîâ ïëàñòè÷íîñòè,

êîòîðûå îïðåäåëÿþò, ìîæåò ëè âåñ èçìåíÿòüñÿ â ïðîöåññå

îáó÷åíèÿ.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 53: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Ýôôåêò Áîëäóèíà è íåéðîííûå ñåòè

Èòåðàöèÿ àëãîðèòìà ñîñòîèò èç äâóõ ÷àñòåé.

 òå÷åíèå ïåðâîé ÷àñòè èìåþùèåñÿ îñîáè îáó÷àþòñÿ íà

òåñòîâûõ ïðèìåðàõ; ïðè ýòîì îáó÷åíèå ó÷èòûâàåò òàêæå

ãåíû ïëàñòè÷íîñòè: äëÿ âåñà w

∆w = −ηp∑v∈V

∂Ev (w)

∂w,

ãäå η ñêîðîñòü îáó÷åíèÿ, V òåñòîâûå ïðèìåðû, Ev

ôóíêöèÿ îøèáêè, à p ñîîòâåòñòâóþùèé w ãåí

ïëàñòè÷íîñòè.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 54: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Ýôôåêò Áîëäóèíà è íåéðîííûå ñåòè

Íà âòîðîì ýòàïå îáó÷åííûå íåéðîííûå ñåòè ó÷àñòâóþò â

ãåíåòè÷åñêèõ îïåðàöèÿõ.

Íàïðèìåð, ñ ôóíêöèåé ïðèñïîñîáëåííîñòè

Fitness = 1.0 −1

N2N

∑v∈V

N−1∑i=0

(Outv ,i − Targetv ,i )2,

ãäå Targetv ,i çíà÷åíèå öåëåâîé ôóíêöèè íà i-ì âûõîäå

ñåòè â v -ì òåñòîâîì ïðèìåðå, à Outv ,i ðåàëüíûé âûõîä

i-ãî âûõîäíîãî íåéðîíà ñåòè.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 55: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Ðåçóëüòàòû

 ðåçóëüòàòå ïîëó÷àåòñÿ òàêîå ïîâåäåíèå: ïîíà÷àëó â

ïîïóëÿöèè æèâóò â îñíîâíîì ëåãêîîáó÷àåìûå îñîáè ñ

ìàëûì êîëè÷åñòâîì çàôèêñèðîâàííûõ ãåíîâ ïëàñòè÷íîñòè.

Ïîòîì îíè ïîíåìíîãó îáó÷àþò òîò èëè èíîé âåñ è åãî

ôèêñèðóþò; â êîíå÷íîì ñ÷¼òå ïîíåìíîãó âûäåëÿåòñÿ

îïòèìàëüíàÿ îñîáü ñî âñåìè ôèêñèðîâàííûìè ãåíàìè.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 56: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Áèîëîãèÿ âîïðîñà

Âñ¼ íà÷àëîñü ñ ðàáîò Ïüåðà-Ïîëÿ Ãðàññå ïðî

òåðìèòîâ/ìóðàâü¼â.

Îêàçàëîñü, ÷òî ìóðàâüè îáìåíèâàþòñÿ èíôîðìàöèåé

ïîñðåäñòâîì ëîêàëüíûõ ñîîáùåíèé, îñòàâëÿåìûõ â

îêðóæàþùåé ñðåäå: ìóðàâüè îñòàâëÿþò ôåðîìîíû, êîãäà

èäóò ê åäå èëè îò åäû, à äðóãèå ìóðàâüè ìîãóò ýòè

ôåðîìîíû ÷óâñòâîâàòü è èçìåíÿòü ñâî¼ ïîâåäåíèå.

Ýêñïåðèìåíòû íàä ìóðàâüÿìè â ñâî¼ âðåìÿ êðèòèêîâàë

Ôåéíìàí, íî ñóòü îò ýòîãî íå òåðÿåòñÿ.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 57: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Äâà ìîñòà

Êëàññè÷åñêèé ýêñïåðèìåíò äâà ìîñòà.

Îò ìóðàâü¼â ê åäå âåäóò äâà ìîñòà îäèíàêîâîé äëèíû.

Ïîíà÷àëó ìóðàâüè õîäÿò ðàâíîìåðíî.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 58: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Äâà ìîñòà

Ïîòîì èç-çà ôëóêòóàöèé îäèí ìîñò ñòàíîâèòñÿ ÷óòü áîëåå

ïîñåùàåìûì.

È ïðîøåäøèå ïî íåìó ìóðàâüè îñòàâëÿþò áîëüøå

ôåðîìîíîâ, çíà÷èò, åù¼ áîëüøå ìóðàâü¼â èäóò òóäà, è

âñêîðå îíè âñå õîäÿò ïî îäíîìó ìîñòó.

Âîò ïðèìåð ïîëîæèòåëüíîé îáðàòíîé ñâÿçè.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 59: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Äâà ìîñòà

À åñëè ìîñòû îêàæóòñÿ ñóùåñòâåííî ðàçíîé äëèíû, òî

ïîëó÷èòñÿ, ÷òî ïî áîëåå êîðîòêîìó ïóòè ìóðàâüè

âîçâðàùàþòñÿ ðàíüøå.

È òàì ðàíüøå îêàæåòñÿ áîëüøå ôåðîìîíîâ.

È óæå íèêàêèõ ôëóêòóàöèé áóäåò âûáðàíà áîëåå

êîðîòêàÿ äîðîãà.

Ýòó ìûñëü è õî÷åòñÿ èñïîëüçîâàòü â ðåøåíèè çàäà÷

îïòèìèçàöèè.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 60: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Çàäà÷à êîììèâîÿæåðà

Åñòåñòâåííî ïîïðîáîâàòü ïðèìåíèòü ê çàäà÷å

êîììèâîÿæåðà.

Åñòü ïîëíûé ãðàô ñ ðàññòîÿíèÿìè íà ð¼áðàõ, è åñòü íàáîð

èñêóññòâåííûõ ìóðàâü¼â.

Ïîýòîìó ó êàæäîãî ðåáðà åñòü åù¼ ïåðåìåííàÿ

¾ôåðîìîí¿.

Íà êàæäîì øàãå àëãîðèòìà ìóðàâåé âûáèðàåò ñëåäóþùóþ

âåðøèíó èç òåõ, êîòîðûå îí åù¼ íå ïîñåùàë, ñ

âåðîÿòíîñòüþ, ïðîïîðöèîíàëüíîé å¼ ôåðîìîíó.

À ïîòîì ïîäïðàâëÿåò çíà÷åíèå ýòîãî ôåðîìîíà.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 61: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Îáùàÿ ìîäåëü

Äàâàéòå ôîðìàëüíî çàïèøåì ìîäåëü çàäà÷è îïòèìèçàöèè.

S ïðîñòðàíñòâî âîçìîæíûõ ðåøåíèé, îïðåäåë¼ííîå íà

ìíîæåñòâå ïåðåìåííûõ Xi , ãäå Xi ∈ v1i , . . . , v|Di |i .

Ω íàáîð îãðàíè÷åíèé.

f : S → R′ öåëåâàÿ ôóíêöèÿ.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 62: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Êîììèâîÿæ¼ð

Çàäà÷ó êîììèâîÿæ¼ðà ìîæíî îïèñàòü êàê íàáîð

ïåðåìåííûõ Xi , ïðèíèìàþùèõ çíà÷åíèÿ âî ìíîæåñòâå

âåðøèí V ; Xi = v çíà÷èò, ÷òî íà i-ì øàãå ìû ïîéä¼ì â

âåðøèíó i (èç âåðøèíû Xi−1).

Êîìïîíåíòû ðåøåíèÿ âîçìîæíûå çíà÷åíèÿ êàæäîé èç

ïåðåìåííîé ýòî ð¼áðà cij = (i , j); òàêîå ðåáðî îçíà÷àåò,

÷òî ïîñëå i íóæíî èäòè â j .

Çíà÷åíèå ôåðîìîíà τij êàê ðàç è îïðåäåëÿåòñÿ íà ýòèõ

êîìïîíåíòàõ.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 63: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Ìåòàñõåìà îïòèìèçàöèè ìóðàâüÿìè

Èíèöèàëèçèðîâàòü.

Ïîêà íå âûïîëíåíî óñëîâèå îñòàíîâêè:1 Ïîñòðîèòü ðåøåíèÿ ìóðàâü¼â.2 Ïðèìåíèòü ëîêàëüíûé ïîèñê (íåîáÿçàòåëüíî).3 Èçìåíèòü çíà÷åíèÿ ôåðîìîíîâ.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 64: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Äëÿ çàäà÷è êîììèâîÿæ¼ðà

1 Ïîñòðîèòü ðåøåíèÿ ìóðàâü¼â.

Ìóðàâåé ñòðîèò ðåøåíèå èç cij . Íà÷èíàåò ñ ïóñòîãî: s0 = ∅.Ïîòîì íà øàãå i äîáàâëÿåò îäíî ðåáðî èç íàáîðà

äîñòóïíûõ ð¼áåð.

Ôàêòè÷åñêè ïîëó÷àåòñÿ áëóæäàíèå ïî íàøåìó ïîëíîìó

ãðàôó.

Âûáîð ñëåäóþùåãî ðåáðà çàâèñèò îò êîíêðåòíîãî

àëãîðèòìà (÷óòü ïîçæå).

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 65: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Äëÿ çàäà÷è êîììèâîÿæ¼ðà

2 Ëîêàëüíûé ïîèñê.

Îáû÷íî â ðåàëüíûõ ïðèìåíåíèÿõ ïîñòðîåííûå íà øàãå 1

ðåøåíèÿ îïòèìèçèðóþò ëîêàëüíûì ïîèñêîì.

Íàïðèìåð, ìîæíî ñëó÷àéíûì îáðàçîì ïîìåíÿòü ïàðó

ð¼áåð è ïîñìîòðåòü, íå ïîëó÷èòñÿ ëè ëó÷øå, ÷åì áûëî.

Íî ýòî íåîáÿçàòåëüíûé øàã.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 66: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Äëÿ çàäà÷è êîììèâîÿæ¼ðà

3 Èçìåíèòü çíà÷åíèÿ ôåðîìîíîâ.

À òåïåðü íóæíî ïîäïðàâèòü ôåðîìîíû â ïðàâèëüíóþ

ñòîðîíó.

Îáû÷íî äåëàþò òàê: âîîáùå âñå ôåðîìîíû íåìíîæêî

èñïàðÿþòñÿ, ïîñëå ÷åãî õîðîøèå ðåøåíèÿ ïîëó÷àþò

áîëüøóþ íàäáàâêó, ÷åì ïëîõèå.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 67: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Êîíêðåòíûå àëãîðèòìû: AS

Ant System: èñòîðè÷åñêè ïåðâûé òàêîé àëãîðèòì.

Ôåðîìîí àïäåéòÿò âñå ìóðàâüè:

τij := (1 − ρ)τij +

m∑k=1

∆τkij .

Çäåñü ρ ñêîðîñòü èñïàðåíèÿ, ∆τkij êîëè÷åñòâî

ôåðîìîíà, êîòîðûé äîáàâèò ìóðàâåé k ðåáðó (i , j):

∆τkij =

Q/Lk , åñëè k èñïîëüçîâàë (i , j) â ïóòè.

0, åñëè íå èñïîëüçîâàë.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 68: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Êîíêðåòíûå àëãîðèòìû: AS

À íà ýòàïå ïîñòðîåíèÿ ðåøåíèÿ ìóðàâüè âûáèðàþò ðåáðî

ñòîõàñòè÷åñêè ñ âåðîÿòíîñòüþ, ïðîïîðöèîíàëüíîé

ταij η

βij ,

ãäå ηij = 1

dij, dij ðàññòîÿíèå îò i äî j .

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 69: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Êîíêðåòíûå àëãîðèòìû: MMAS

Max-Min Ant System: ïðîäîëæåíèå ýòèõ èäåé.

Îãðàíè÷èì τ èíòåðâàëîì [τmin, τmax].

Ïðàâèëî áóäåò ó÷èòûâàòü òîëüêî ∆τbestij , êîòîðîå ðàâíî

1/Lbest, åñëè (i , j) ïðèíàäëåæèò ëó÷øåìó íàéäåííîìó ïóòè.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 70: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Êîíêðåòíûå àëãîðèòìû: MMAS

Íîâîå çíà÷åíèå ðàññ÷èòûâàåòñÿ êàê

τ ′ij = (1 − ρ)τij +

∑mk=1 ∆τbestij .

Çäåñü best ìîæåò îçíà÷àòü ëèáî ¾ëó÷øèé çà ïîñëåäíþþ

èòåðàöèþ¿, ëèáî ¾âîîáùå ëó÷øèé ïîêà ÷òî¿.

Ñîáñòâåííî ïðàâèëî àïäåéòà:

τij :=

τmin, åñëè τ ′

ij < τmin,

τ ′ij , åñëè τ ′

ij ∈ [τmin, τmax],

τmax, åñëè τ ′ij > τmax.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 71: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Êîíêðåòíûå àëãîðèòìû: ACS

Ant Colony System ââîäèò åù¼ ëîêàëüíûå èçìåíåíèÿ

ôåðîìîíîâ.

Ïîñëå êàæäîãî øàãà ïîñòðîåíèÿ ïóòè ìóðàâüèøêè

ïîäïðàâëÿþò ôåðîìîíû, íà÷àâøèåñÿ ñ τ0:

τij = (1 − φ)τij + φτ0.

Ñìûñë â òîì, ÷òî êîãäà ìóðàâüè ïîëçóò ïî ðåáðó, îíè îò

íåãî ¾îòáèâàþò çàïàõ¿, è óìåíüøàþòñÿ íåæåëàòåëüíûå

ýôôåêòû, î êîòîðûõ ìû ãîâîðèëè: íå âñå ñêàïëèâàþòñÿ â

îäíîì è òîì æå íåîïòèìàëüíîì ðåáðå.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 72: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Êîíêðåòíûå àëãîðèòìû: ACS

À oine update ôåðîìîíîâ äåëàåò òîëüêî îäèí (ëó÷øèé)

ìóðàâåé:

τij :=

(1 − ρ)τij + ρ∆τij , (i , j) åñòü â ëó÷øåì ïóòè,

0, â ïðîòèâíîì ñëó÷àå.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 73: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

×òî èçâåñòíî

Äîêàçàíî, ÷òî ìóðàâüèíûå àëãîðèòìû äåéñòâèòåëüíî

ñõîäÿòñÿ ê îïòèìàëüíûì ðåøåíèÿì.

Ïðîáëåìû, â îáùåì, òå æå, ÷òî â ãåíåòè÷åñêèõ àëãîðèòìàõ.

Åñòü óñïåøíûå ïðèìåíåíèÿ ê ðåøåíèþ NP-ïîëíûõ çàäà÷,

îñîáåííî ê çàäà÷àì ðóòèíãà â òåëåêîììóíèêàöèîííûõ

ñåòÿõ.

Ãëàâíûé ñïîñîá óëó÷øåíèÿ ïðèìåíåíèå ëîêàëüíîé

îïòèìèçàöèè íà âòîðîì ìåòà-øàãå.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 74: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Ñóòü ìåòàëëóðãè÷åñêàÿ

Èìèòàöèÿ îòæèãà (simulated annealing) â ñàìîì ïðÿìîì

ñìûñëå!

Îòæèã ýòî êîãäà ìàòåðèàë íàãðåâàþò, à ïîòîì

ïîíåìíîæêó îõëàæäàþò.

Ïðè íàãðåâå àòîìû äâèãàþòñÿ ïîáûñòðåå (âûëåçàþò èç

ñâîèõ ëîêàëüíûõ ìèíèìóìîâ) è íà÷èíàþò áëóæäàòü ïî

ñîñòîÿíèÿì ñ âûñîêîé ýíåðãèåé.

Ïîñòåïåííîå îõëàæäåíèå äà¼ò èì øàíñ çàñòûòü â áîëåå

ãëîáàëüíîì ìèíèìóìå, ÷åì ðàíüøå îáðàçîâàòü áîëåå

êðóïíûå êðèñòàëëû ñ ìåíüøèìè äåôåêòàìè.

Áîëåå òîãî, âðåìÿ îò âðåìåíè èõ äàæå îáðàòíî

ïîäîãðåâàþò, åñëè ÷òî-òî èä¼ò íå òàê.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 75: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Ñóòü àëãîðèòìè÷åñêàÿ

Íà êàæäîì øàãå àëãîðèòìà òåêóùåå ðåøåíèå çàìåíÿåòñÿ

íà áëèçëåæàùóþ òî÷êó, âûáðàííóþ ñ âåðîÿòíîñòüþ,

çàâèñÿùåé îò ðàçíîñòè ìåæäó çíà÷åíèÿìè ôóíêöèè è îò

òåìïåðàòóðû T .

Òåìïåðàòóðà ïîíåìíîæêó óìåíüøàåòñÿ: ñíà÷àëà ðåøåíèÿ

áåðóò ïî÷òè ñëó÷àéíî, çàòåì âñ¼ áëèæå è áëèæå ê

ïðåäûäóùåìó.

Ôîðìàëüíî ýòî àäàïòàöèÿ àëãîðèòìà

Ìåòðîïîëèñà-Ãàñòèíãñà.

È, êîíå÷íî, å¼ ìîæíî èñïîëüçîâàòü äëÿ ñýìïëèíãà (êîãäà

âåðîÿòíîñòü âèäà p(x) = 1

Ze−E(x)).

Íî ìû ïîêà íå áóäåì.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 76: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Áëóæäàíèå

Íà êàæäîì øàãå àëãîðèòì îïðåäåëÿåò, â êàêîé s ′ ïåðåéòè

èç s ′.

s ′ âûáèðàåòñÿ èç ñîñåäåé (íàïðèìåð, èç ïóòåé â çàäà÷å

êîììèâîÿæ¼ðà, îòëè÷àþùèõñÿ íà îäíó òðàíñïîçèöèþ).

Ó s è s ′ åñòü ýíåðãèÿ e = E (s) è e ′ = E (s ′), îíà æå

öåëåâàÿ ôóíêöèÿ.

Âåðîÿòíîñòü ïåðåéòè èç s â s ′ çàâèñèò îò ýíåðãèé è

òåêóùåé òåìïåðàòóðû p(e, e ′,T ).

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 77: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Ñâîéñòâà p

p(e, e ′,T ) äîëæíà áûòü íåîòðèöàòåëüíî, äàæå êîãäà

e ′ > e, ò.å. äîëæåí áûòü ñïîñîá âûáðàòüñÿ èç ëîêàëüíîãî

ìèíèìóìà.

Ïðè T → 0 p(e, e ′,T ) äîëæíà ñòðåìèòüñÿ ê íóëþ ïðè

e ′ > e, ò.å. ÷åì íèæå òåìïåðàòóðà, òåì ñïîêîéíåå ìû

ïðîñòî äâèæåìñÿ ê ëîêàëüíîìó ìèíèìóìó.

×àùå âñåãî T óìåíüøàåòñÿ ñ ðîñòîì e ′ − e, ò.å. íåáîëüøèå

øàãè ïðåäïî÷òèòåëüíåå áîëüøèõ.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 78: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Ñâîéñòâà T

Îñòàëîñü ïîíÿòü, ÷òî ïðîèñõîäèò ñ òåìïåðàòóðîé.

Îíà ïîíåìíîãó óìåíüøàåòñÿ, íî êàê? Ýòî íàçûâàåòñÿ

ðàñïèñàíèå îòæèãà (annealing schedule).

×åì ìåäëåííåå îíà óìåíüøàåòñÿ, òåì áîëüøå âåðîÿòíîñòü,

÷òî ìû ïðèä¼ì ê ãëîáàëüíîìó ìèíèìóìó (íó, âî âñÿêîì

ñëó÷àå, ê ìèíèìóìó ïîëó÷øå).

Íî, åñòåñòâåííî, òåì äîëüøå ðàáîòàåò àëãîðèòì.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû

Page 79: Самообучающиеся системы, весна 2008: Генетические алгоритмы и другие сюжеты

Îñíîâíàÿ èäåÿÃåíåòè÷åñêîå ïðîãðàììèðîâàíèå

Äðóãèå ñþæåòû

Ëàìàðê è ÁîëäóèíÎïòèìèçàöèÿ ïðè ïîìîùè êîëîíèè ìóðàâü¼âÀëãîðèòì èìèòàöèè îòæèãà

Ñïàñèáî çà âíèìàíèå!

Lecture notes è ñëàéäû áóäóò ïîÿâëÿòüñÿ íà ìîåé

homepage:

http://logic.pdmi.ras.ru/∼sergey/index.php?page=teaching

Ïðèñûëàéòå ëþáûå çàìå÷àíèÿ, ðåøåíèÿ óïðàæíåíèé,

íîâûå ÷èñëåííûå ïðèìåðû è ïðî÷åå ïî àäðåñàì:

[email protected], [email protected]

Çàõîäèòå â ÆÆ smartnik.

Ñåðãåé Íèêîëåíêî Ãåíåòè÷åñêèå àëãîðèòìû è äðóãèå ñþæåòû