николай димитров генетични алгоритми
TRANSCRIPT
Николай ДимитровКомпютърни науки || курс - задочно
ГЕНЕТИЧНИ АЛГОРИТМИ
Генетични алгоритми
Генетични алгоритми
Генетичните алгоритми са част от еволюционото програмиране.Вдъхновени от Дарвиновата теория за еволюцията.
Средство за решаване на задачиСреда за машинно обучение
Основни предимства :- пресмятания на няколко решения едновременно,обхващайки голяма област на търсене – създава се списък с „най- добри решения“Оптимизация на много сложни стойностни функции и работа с разнообразни типове данниВинаги дават „отговор“ на задачата, подобряване с времето
http://www.boxcar2d.com/
Генетични алгоритми
Приложенията им биват многополюсни от описание на различни видове биологични с-ми,миграция на видове,оптимизация в химията през компресиране на данни,изготвяне на оптимален график и се стигне до дизайн на електронни схеми и безжични сензори.Този тип алгоритми намират широко приложение в областта на теория на игрите и компютърно творчество
Генетични алгоритми
Биологична основа – залегнала в генетичните алгоритми.Всяка клетка има множество хромозоми(низове от ДНК).Хромозомите се състоят от гени блокове от ДНК.Всеки ген „кодира“ белег,например цвят на очите.Възможните комбинации за белега(синьо,кафяво) се наричат алели.
Всеки ген има своята позиция в хромозома
Генетични алгоритми
В „дъното“ на идеята за този тип алгоритми, се ползва презумцията залегнала в еволюцията, че новата популация ще бъде по-добра от старата.Решенията,който са избрани да формират новата популация са съборазени с тяхната жизнеспособност - по подходящите са с по-големи шансове за репродукция.Тези стъпки се повтарятдокато не се „създаде“ най-доброторешение.
Генетични алгоритми
Популацията се състои от кандидати наречени хромозоми. Този тип алгоритмите се основават върху конкуренцията между хромозомите. Във всяка хромозома е кодирано възможното решение на задачата и се състои от множество елементи наречени гени. След „завъртане“ на достатъчен брой итарации алгоритъма се приближава до оптималното решение.
Генетични алгоритми
Информацията за решението се съдържа в хромозомите под различни форми:- Двойчен низ:0110-„Цифров“: използвайте редицата {1,2,3,4} да представите {P,W,S,E}- Реални числа: огъната отчасти или изцяло антена от автоматичен компютърен дизайн. -Пермутация :решаване на Судоко – всяка стъпка е пред-ставена от ген в хромозоната- Мутация: смяна на бит стойност в редица
Генетични алгоритми
Основни оператори в генетичните алгоритми - Селекция : пресмята се репродуктивната вероятност- Кръстосване :популацията, получена след селекция се раздела на 2 равни части,избират се двойки хромозоми от всяка,който се кръстосват.-Мутация: след кръстосване произволни „битове“ се променят
кръстосване мутация
Генетични алгоритми
Кръстосване или мутация
-Зависи от проблема но,-в повечето случай е добре да имаш и двете-двете имат различни роли
Генетични алгоритми
Пример: задача за 8-те царици. Да се намери такова разположение на 8 царици върху шахматна дъска, че никоя двойка от тях да не се бият взаимно.
Генетични алгоритми
Пример за това как генетичните алгоритми се подобряване с времето
Генетични алгоритми
Traveling Salesman Problem1) Лондон 2) София 3) Загреб 4) Париж5) Брюксел 6) Токио 7) Ню Йорк 8) ИстанбулЛист с градове 1 (3 5 7 2 1 6 4 8)Лист с градове 2 (2 5 7 6 8 1 3 4) Кръстосване (5 8 7 2 1 6 3 4)
Мутация Преди (5 8 7 2 1 6 3 4) Мутация След (5 8 6 2 1 7 3 4)
Генетични алгоритми
GAOT – Genetic Algorithm Optimization Toolbox in Matlab
JGAP – Genetic Algorithm and Genetic Programming component provided as a Java framework.
Generator – another popular and powerful software running on Microsoft Excel
Генетични алгоритми
Ами имат ли някакви недостатъци ?!?
-Изисква се повече изчислително време за осъществяване на задачата.-По-бавни са от повечето познати метода
Генетични алгоритми
References and further readings:Garkaz M., The Selection and Optimization of Stock Portfolio using Genetic Algorithm based on Mean-semi Variance Model.Poli R., etc., “A Field Guide to Genetic Programming”http://www.r-bloggers.com/genetic-algorithms-a-simple-r-example/http://www.obitko.com/tutorials/genetic-algorithms/
Генетични алгоритми