Лаб_практикум_ОВИ_03_06_13
.pdf11.2. Индивидуальные задания
1.Задайте с помощью символических переменных две символические матрицы A и B, размерами 3 3. Определите произведение матриц A и B.
2.Задайте числовую матрицу D, размерами 3 3, содержащую в качестве элементов числа N, N+1, N 1, 0.9N, 2.4, 3.5 и т.д., где N ваш номер по списку в журнале группы. Получите из числовой матрицы символическую.
3.С помощью символических вычислений определите сумму чисел 1010 1010 10N 10 N , где N ваш номер по списку в журнале группы.
4.С помощью символических вычислений определите корень квадратный из числа N.N с сорока двумя значащими цифрами.
5.Постройте графики символических функций:
f N 2sin( Nx), 2 < x < 2 ;
f1 (x N)2 ( y N)3 , 10 x 10; 10 y 10,
где N Ваш номер по списку в журнале группы.
6. Полином
y (x N)5 (x 2N)3 (x N)2 x N , |
(11.1) |
где N ваш номер по списку в журнале группы, с помощью команды pretty
отобразите в командном окне, затем преобразуйте его к виду,
содержащему степени x с соответствующими коэффициентами.
7.Определите коэффициенты полинома (11.1) при переменной N.
8.Представьте полином (11.1) в виде суммы одночленов.
9.Разложите полином (11.1) на множители.
211
10.Примените к полиному (11.1) функцию horner.
11.Представьте число 1000 N+2 N в виде произведения простых
чисел.
12.Упростите выражение
ysin(a)sin(b c)cos(b c a) sin(b)sin(c a)cos(c a b)
sin(c)sin(a b)cos(a b c).
13. |
Получите семь членов ряда Тейлора в окрестности точки нуль |
||||||||||||||||
для функции y N(sin(x) cos(x)). |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
x |
2k |
|
|||
14. |
Определите сумму членов ряда s N ( 1)k |
|
|
. |
|
||||||||||||
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
k 0 |
(2k)! |
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15. |
Определите предел |
lim N |
sin( x) |
, где N ваш номер по списку в |
|||||||||||||
|
x |
||||||||||||||||
|
|
|
x0 |
|
|
|
|
|
|
|
|
|
|||||
журнале группы. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16. |
Определите пределы |
lim |
arctg( |
1 |
) и lim arctg( |
1 |
) . |
|
|||||||||
|
|
|
|
||||||||||||||
|
|
|
x0 |
|
|
|
x |
x0 |
|
|
x |
|
|||||
17. |
Определите |
первые |
|
три |
производные |
|
|
от |
функции |
||||||||
y N(sin(x))2 N 2 x3 |
eNx , где |
N ваш номер по |
списку |
в журнале |
|||||||||||||
группы. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b a |
x |
2 |
|
y2 |
|
|
|
|
|
|
|
|
|
|
18. |
Вычислите интеграл ( |
|
)dxdy. |
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
0 0 |
2 p |
|
2q |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
19. |
Оформите отчет по лабораторной работе. |
|
|
|
|
|
|
||||||||||
212
Лабораторная работа 12
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ ПРИ ОПРЕДЕЛЕНИИ ЭКСТРЕМУМОВ ФУНКЦИЙ
Цель лабораторной работы: получение и закрепление знаний,
формирование практических навыков по определению экстремумов функций с помощью генетических алгоритмов в пакете MATLAB.
12.1. Краткие сведения из теории
Генетические алгоритмы (ГА) относятся к эвристическим алгоритмам поиска, используемым для решения задач оптимизации и моделирования путём случайного подбора, комбинирования и вариации искомых параметров с использованием механизмов, напоминающих биологическую эволюцию. ГА является разновидностью эволюционных вычислений, с помощью которых решаются оптимизационные задачи с использованием методов естественной эволюции, таких как наследование,
мутации, отбор и кроссинговер. Отличительной особенностью ГА является использование оператора "скрещивание", который производит операцию рекомбинации решений-кандидатов, роль которой аналогична роли скрещивания в живой природе.
Типичными применениями ГА являются следующие: поиск экстремумов функций; оптимизация запросов в базах данных; задачи на графах (задача коммивояжера, раскраска, нахождение паросочетаний);
настройка и обучение искусственной нейронной сети; задачи компоновки;
составление расписаний; игровые стратегии; теория приближений и др.
Основной идеей ГА является организация "борьбы за существование" и "естественный отбор" среди пробных (примерных)
213
решений задачи. Поскольку ГА используют биологические аналогии, то применяющаяся терминология напоминает биологическую.
Как известно, эволюционная теория утверждает, что жизнь на нашей планете возникла вначале лишь в простейших ее формах – в виде одноклеточных организмов. Эти формы постепенно усложнялись,
приспосабливаясь к окружающей среде и порождая новые виды, и только через многие миллионы лет появились первые животные и люди. Можно сказать, что каждый биологический вид с течением времени улучшает свои качества так, чтобы наиболее эффективно справляться с важнейшими задачами выживания, самозащиты, размножения и т.д. Так возникла защитная окраска у многих рыб и насекомых, панцирь у черепахи, яд у скорпиона и многие другие полезные приспособления.
С помощью эволюции природа постоянно оптимизирует все живое,
находя подчас самые неординарные решения. С первого взгляда неясно, за счет чего происходит этот прогресс, однако ему есть научное объяснение.
Дать это объяснение можно, основываясь всего на двух биологических механизмах – естественном отборе и генетическом наследовании.
Ключевую роль в эволюционной теории играет естественный отбор.
Его суть состоит в том, что наиболее приспособленные особи лучше выживают и приносят больше потомства, чем менее приспособленные.
Заметим, что сам по себе естественный отбор еще не обеспечивает развития биологического вида. Действительно, если предположить, что все потомки рождаются примерно одинаковыми, то различные поколения будут отличаться только по численности, но не по приспособленности.
Поэтому очень важно изучить, каким образом происходит наследование,
т.е. как свойства потомка зависят от свойств родителей.
Основной закон наследования интуитивно понятен каждому – он состоит в том, что потомки похожи на родителей. В частности, потомки более приспособленных родителей будут, скорее всего, одними из наиболее приспособленных в своем поколении. Чтобы понять, на чем
214
основана эта похожесть, нам потребуется немного углубиться в строение клетки животного – в мир генов и хромосом.
В клетках любого животного имеется набор хромосом, несущих информацию об этом животном. Основная часть хромосомы – нить ДНК
(молекула дезоксирибонуклеиновой кислоты), которая состоит из четырех видов специальных соединений – нуклеотидов, идущих в определенной последовательности. Нуклеотиды обозначаются буквами A, T, C и G, и
именно порядок их следования кодирует все генетические свойства данного организма. Говоря более точно, ДНК определяет, какие химические реакции будут происходить в данной клетке, как она будет развиваться и какие функции выполнять.
Ген – это отрезок цепи ДНК, отвечающий за определенное свойство особи, например, за цвет глаз, тип волос, цвет кожи и т.д. Вся совокупность генетических признаков человека кодируется посредством примерно 60 тыс. генов, суммарная длина которых составляет более
90 млн нуклеотидов.
Различают два вида клеток: половые и соматические. В каждой соматической клетке человека содержится 46 хромосом. Эти 46 хромосом
– на самом деле 23 пары, причем в каждой паре одна из хромосом получена от отца, а вторая – от матери. Парные хромосомы отвечают за одни и те же признаки – например, отцовская хромосома может содержать ген черного цвета глаз, а парная ей материнская – ген голубоглазости.
Существуют определенные законы, управляющие участием тех или иных генов в развитии особи. В частности, в нашем примере потомок будет черноглазым, так как ген голубых глаз является "слабым" (рецессивным) и
подавляется геном любого другого цвета.
В половых клетках хромосом только 23, и они непарные. При оплодотворении происходит слияние мужской и женской половых клеток и образуется клетка зародыша, содержащая как раз 46 хромосом. Какие свойства потомок получит от отца, а какие – от матери?
215
Это зависит от того, какие именно половые клетки участвовали в оплодотворении. Дело в том, что процесс выработки половых клеток (так называемый мейоз) в организме подвержен случайностям, благодаря которым потомки все же во многом отличаются от своих родителей. При мейозе, в частности, происходит следующее: парные хромосомы соматической клетки сближаются вплотную, затем их нити ДНК разрываются в нескольких случайных местах и хромосомы обмениваются своими частями (рис. 12.1).
Рис. 12.1. Условная схема кроссовера
Этот процесс обеспечивает появление новых вариантов хромосом и носит название "кроссовер". Каждая из вновь появившихся хромосом окажется затем внутри одной из половых клеток, и ее генетическая информация может реализоваться в потомках данной особи.
Второй важный фактор, влияющий на наследственность, – это мутации, которые выражаются в изменении некоторых участков ДНК.
Мутации также случайны и могут быть вызваны различными внешними факторами, такими, как радиоактивное облучение. Если мутация произошла в половой клетке, то измененный ген может передаться потомку и проявиться в виде наследственной болезни либо в других новых свойствах потомка. Считается, что именно мутации являются причиной появления новых биологических видов, а кроссовер определяет уже изменчивость внутри вида (например, генетические различия между людьми).
216
Как уже было отмечено выше, эволюция – это процесс постоянной оптимизации биологических видов. Естественный отбор гарантирует, что наиболее приспособленные особи дадут достаточно большое потомство, а
благодаря генетическому наследованию мы можем быть уверены, что часть этого потомства не только сохранит высокую приспособленность родителей, но будет обладать и некоторыми новыми свойствами. Если эти новые свойства окажутся полезными, то с большой вероятностью они перейдут и в следующее поколение. Таким образом, происходит накопление полезных качеств и постепенное повышение приспособляемости биологического вида в целом. Зная, как решается задача оптимизации видов в природе, мы теперь применим похожий метод для решения различных реальных задач.
Введем обозначения и приведем несколько классических примеров.
Как правило, в задаче оптимизации мы можем управлять несколькими параметрами (обозначим их значения через x1, x2, ..., xn, а нашей целью является максимизация (или минимизация) некоторой функции f(x1, x2, ..., xn), зависящей от этих параметров. Функция f называется целевой функцией. Например, если требуется максимизировать целевую функцию "доход компании", то управляемыми параметрами будут число сотрудников компании, объем производства, затраты на рекламу, цены на конечные продукты и т.д. Важно отметить, что эти параметры связаны между собой – в частности, при уменьшении числа сотрудников скорее всего упадет и объем производства.
Для такого рода задач было разработано несколько методов решений. В случае, если целевая функция достаточно гладкая и имеет только один локальный максимум (унимодальна), то оптимальное решение можно получить методом градиентного спуска. Идея этого метода состоит в том, что оптимальное решение получается итерациями. Берется случайная начальная точка, а затем в цикле происходит сдвиг этой точки на малый шаг, причем шаг делается в том направлении, в котором целевая
217
функция растет быстрее всего. Недостатком градиентного алгоритма являются слишком высокие требования к функции – на практике унимодальность встречается крайне редко, а для неунимодальной функции градиентный метод часто приводит к неоптимальному ответу.
Аналогичные проблемы возникают и с применением других математических методов. Во многих важных задачах параметры могут принимать лишь определенные значения, причем во всех остальных точках целевая функция не определена. Конечно, в этом случае не может быть и речи о ее гладкости и требуются принципиально другие подходы.
Представим себе искусственный мир, населенный множеством существ (особей), причем каждое существо – это некоторое решение нашей задачи. Будем считать особь тем более приспособленной, чем лучше соответствующее решение (чем большее значение целевой функции оно дает). Тогда задача максимизации целевой функции сводится к поиску наиболее приспособленного существа. Конечно, мы не можем поселить в наш виртуальный мир все существа сразу, так как их очень много. Вместо этого мы будем рассматривать много поколений, сменяющих друг друга.
Теперь, если мы сумеем ввести в действие естественный отбор и генетическое наследование, то полученный мир будет подчиняться законам эволюции. Заметим, что в соответствии с нашим определением приспособленности целью этой искусственной эволюции будет как раз создание наилучших решений. Очевидно, эволюция – бесконечный процесс, в ходе которого приспособленность особей постепенно повышается. Принудительно остановив этот процесс через достаточно долгое время после его начала и выбрав наиболее приспособленную особь в текущем поколении, мы можем получить ответ близкий к оптимальному,
но можем такой ответ и не получить, поскольку это случайный поиск.
Такова, вкратце, идея генетического алгоритма. Перейдем теперь к точным определениям и опишем работу генетического алгоритма более детально.
218
Для того чтобы говорить о генетическом наследовании, нужно снабдить наши существа хромосомами. В генетическом алгоритме хромосома – это некоторый числовой вектор, соответствующий подбираемому параметру, а набор хромосом данной особи определяет решение задачи. Какие именно векторы следует рассматривать в конкретной задаче, решает сам пользователь. Каждая из позиций вектора хромосомы называется геном.
Определим теперь понятия, соответствующие мутации и кроссоверу в генетическом алгоритме.
Мутация – это преобразование хромосомы, случайно изменяющее одну или несколько ее позиций (генов). Наиболее распространенный вид мутаций – случайное изменение только одного из генов хромосомы.
Кроссовер (в литературе по ГА также употребляется название кроссинговер и скрещивание) – это операция, при которой из двух хромосом порождается одна или несколько новых хромосом. В
простейшем случае кроссовер в генетическом алгоритме реализуется так же, как и в биологии (см. рис. 12.1). При этом хромосомы разрезаются в случайной точке и обмениваются частями между собой. Например, если хромосомы (1, 2, 3, 4, 5) и (0, 0, 0, 0, 0) разрезать между третьим и четвертым генами и обменять их части, то получатся потомки (1, 2, 3, 0, 0)
и (0, 0, 0, 4, 5).
Схема генетического алгоритма изображена на рис. 12.2.
Вначале генерируется начальная популяция особей (индивидуумов),
т.е. некоторый набор решений задачи. Как правило, это делается случайным образом. Затем мы должны смоделировать размножение внутри этой популяции. Для этого случайно отбираются несколько пар индивидуумов, производится скрещивание между хромосомами в каждой паре, а полученные новые хромосомы помещаются в популяцию нового поколения. В генетическом алгоритме сохраняется основной принцип естественного отбора – чем приспособленнее индивидуум (чем больше
219
соответствующее ему значение целевой функции), тем с большей вероятностью он будет участвовать в скрещивании. Теперь моделируются мутации – в нескольких случайно выбранных особях нового поколения изменяются некоторые гены. Затем старая популяция частично или полностью уничтожается, и мы переходим к рассмотрению следующего поколения. Популяция следующего поколения в большинстве реализаций ГА содержит столько же особей, сколько начальная, но в силу отбора приспособленность в ней в среднем выше. Теперь описанные процессы отбора, скрещивания и мутации повторяются уже для этой популяции и т.д.
Создание начальной |
|
|
Отбор |
|
популяции |
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Скрещивание
Переход к новому
поколению
Мутация
Ответ
Рис. 12.2. Блок-схема генетического алгоритма
В каждом следующем поколении мы будем наблюдать возникновение совершенно новых решений нашей задачи. Среди них будут как плохие, так и хорошие, но благодаря отбору число хороших решений будет возрастать. Заметим, что в природе не бывает абсолютных
220
