Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2-Lab-Intel-Syst

.pdf
Скачиваний:
9
Добавлен:
29.05.2015
Размер:
481.33 Кб
Скачать

100

 

 

 

 

 

80

 

 

 

 

 

60

 

 

 

 

 

z

 

 

 

 

 

40

 

 

 

 

 

20

 

 

 

 

<z>(t)

 

 

 

 

 

0

 

 

 

 

zmin(t)

 

 

 

 

 

0

20

40

60

80

100

 

 

 

t

 

 

Рис. 10. Изменение zmin(t) и <z>(t). Популяция из 20 особей,

бинарный турнирный отбор, одноточечный кроссинговер

 

(РС = 0,7), битовая мутация (РМ = 0,01)

 

Из сравнения графиков на рис 9 и 10 следует, что уменьшение вероятности мутации улучшило результат работы ГА. Также отметим, что теперь эволюционный процесс стабилизировался значительно позднее, примерно после 60-го поколения. Усредненное по всем запускам минимальное значение функции z, достигнутое за первые 100 поколений, равно ~1,016. Чтобы улучшить результат, увеличим давление селекции путем увеличения размера турнира до 4. Результат представлен на рис. 11.

Увеличение давления селекции привело к ускорению эволюционного поиска за счет удаления из популяции особей со средней и плохой приспособленностью. В результате стабилизация наступила после 40-го поколения, а усредненное по всем запускам минимальное полученное значение функции z равно ~0,013. Наименьшее значение функции z достигается в точке xi = 0, i = 1,2,…,10 и равно 0. В случае поиска минимума функции z с точностью 0,01, для ГА с параметрами, соответствующими графикам на рис. 11, решение было найдено в 69 запусках из 100. При этом в среднем было использовано 1698,68 вычислений целевой

21

функции.

 

 

 

 

 

100

 

 

 

 

 

80

 

 

 

 

 

60

 

 

 

 

 

z

 

 

 

 

 

40

 

 

 

 

 

20

 

 

 

 

 

 

 

 

 

 

<z>(t)

0

 

 

 

 

zmin(t)

 

 

 

 

 

0

20

40

60

80

100

 

 

 

t

 

 

Рис. 11. Изменение zmin(t) и <z>(t). Популяция из 20 особей,

турнирный отбор (t = 4), одноточечный кроссинговер (РС = 0,7),

 

битовая мутация (РМ = 0,01)

 

 

Чтобы повысить стабильность результатов, увеличим размер популяции до 50 особей. Полученные кривые zmin(t) и <z>(t) изображены на рис. 12. Во всех 100 запусках найден минимум функции z с точностью не меньше 0,01. Среднее количество вычислений целевой функции, использованное для нахождения решения, равно 3145,34.

5. ОБЩИЕ РЕКОМЕНДАЦИИ К ПРОГРАММНОЙ РЕАЛИЗАЦИИ ГЕНЕТИЧЕСКОГО АЛГОРИТМА

Программную реализацию ГА можно создать, используя как объ- ектно-ориентированный, так и структурный подход. Ниже предлагается способ реализации различных компонентов генетического алгоритма с использованием обоих подходов (табл. 2).

22

100

 

 

 

 

 

80

 

 

 

 

 

60

 

 

 

 

 

z

 

 

 

 

 

40

 

 

 

 

 

20

 

 

 

 

 

 

 

 

 

 

<z>(t)

0

 

 

 

 

zmin(t)

 

 

 

 

 

0

20

40

60

80

100

 

 

 

t

 

 

Рис. 12. Изменение zmin(t) и <z>(t). Популяция из 50 особей,

турнирный отбор (t = 4), одноточечный кроссинговер (РС = 0,7),

 

битовая мутация (РМ = 0,01)

 

 

Приведенный в табл. 2 способ реализации генетического алгоритма не является эталонным и, вполне возможно, далек от идеала. Данные в табл. 2 могут служить в качестве «опорных» для конкретной реализации генетического алгоритма. Отметим, что бóльшую гибкость и расширяемость программной реализации не только генетического алгоритма, но и любого другого алгоритма и системы вообще можно достичь, используя компонентно-ориентированный подход и паттерны проектирования [13, 16].

23

Табл. 2. Варианты реализации компонентов ГА

Компонент

 

 

 

Объектно-

генетического

Структурный подход

ориентированный

алгоритма

 

 

 

 

подход

 

Особь

Одномерный массив для запи-

Класс «Особь», со-

 

си значений генов. Размер-

держащий массив ге-

 

ность массива совпадает с ко-

нов

 

 

 

 

личеством генов у одной особи

 

 

 

 

 

(количество генов равно числу

 

 

 

 

 

настраиваемых параметров)

 

 

 

 

Популяция

Двумерный массив, в котором

Отдельный

класс

 

i-я строка содержит гены i

«Популяция», содер-

 

особи

 

 

жащий

одномерный

 

 

 

 

массив

 

объектов

 

 

 

 

класса,

 

представ-

 

 

 

 

ляющего особь

 

 

 

 

 

Оценивание

Подпрограмма оценки

строк

Метод управляющего

популяции

массива популяции в соответ-

класса,

оценивающий

 

ствии с

выбранной целевой

популяцию в соответ-

 

функцией

 

 

ствии

с

выбранной

 

 

 

 

целевой функцией

Приспособлен-

Одномерный массив, в кото-

Одномерный

массив

ность популя-

ром i-й элемент соответствует

со значениями оши-

ции

приспособленности i-й особи

бок особей, входящий

 

 

 

 

в управляющий класс

Особи, вы-

Двумерный массив,

строки

Объект класса «По-

бранные для

которого

соответствуют хро-

пуляция»,

содержа-

скрещивания

мосомам

особей, выбранным

щий объекты

класса

 

для скрещивания

 

«Особь», соответст-

 

 

 

 

вующие

выбранным

 

 

 

 

особям

 

 

 

Реализация

Подпрограммы, обрабатываю-

Методы управляюще-

скрещивания,

щие элементы массива, пред-

го класса, работаю-

мутации, фор-

ставляющего популяцию осо-

щие с основной по-

мирования но-

бей, а также популяцию осо-

пуляцией

и популя-

вого поколе-

бей, выбранных для скрещи-

цией

особей

для

ния

вания

 

 

скрещивания

 

24

6. МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ВЫПОЛНЕНИЮ ЛАБОРАТОРНОЙ РАБОТЫ

Целью лабораторной работы является создание студентом программы, реализующей генетический алгоритм для решения задачи оптимизации.

Отчет по лабораторной работе должен содержать:

1.Цель работы.

2.Постановку задачи.

3.Метод решения задачи.

4.Структурную схему алгоритма.

5.Листинг программы.

6.Результаты работы генетического алгоритмы.

7.Выводы.

Для создания экспертной системы рекомендуется использование языков программирования: Турбо-Пролога, C ++, JAVA, Delphi, С#.

Ниже излагаются варианты заданий для выполнения лабораторных работ. Выбор варианта производится в соответствии с желанием студента, на основании его знаний о предметной области.

7.ЗАДАНИЯ ДЛЯ ЛАБОРАТОРНЫХ РАБОТ

1.Аппроксимировать набор точек линейной функцией:

y(x) = a x +b .

Вариант А) Использовать целочисленное кодирование. Вариант Б) Использовать вещественное кодирование.

2. Аппроксимировать набор точек экспоненциальной функцией: y(x) = a exp(b x) .

Вариант А) Использовать целочисленное кодирование. Вариант Б) Использовать вещественное кодирование.

3. Найти минимум функции:

y(x) = x2 +4.

Вариант А) Использовать целочисленное кодирование. Вариант Б) Использовать вещественное кодирование.

4. Найти максимум функции:

y(x) =1 x ; x [– 4; 0).

Вариант А) Использовать целочисленное кодирование. Вариант Б) Использовать вещественное кодирование.

25

5. Найти точку перегиба функции:

f(х) = (x–1.5)3 + 3.

Вариант А) Использовать целочисленное кодирование. Вариант Б) Использовать вещественное кодирование.

6. Найти точку пересечения функции с осью Ох. f(х) = ln (x+1) – 2,25, x > –1.

Вариант А) Использовать целочисленное кодирование. Вариант Б) Использовать вещественное кодирование.

7.Сгенерировать с помощью генетического алгоритма слово

“МИР”.

8.Найти с помощью генетического алгоритма особь, гены которой соответствуют, в формате RGB, фиолетовому цвету (96, 96, 159).

ЛИТЕРАТУРА

1.Редько В.Г. Эволюционная кибернетика. М. – Наука, 2003. – 156 с.

2.Бурцев М.С. Эволюция кооперации в многоагентной системе // Научная сессия МИФИ–2005. VII Всероссийская научно-практическая конференция "Нейроинформатика-2005": Сборник научных трудов.

В 2-х частях. Ч. 1. М.: МИФИ, 2005 – с. 217–224.

3.Beyer H.-G., Schwefel H.-P., Wegener I. How to analyse Evolutionary Algorithms. Technical Report No.CI-139/02. – University of Dortmund, Germany, 2002.

4.Holland J.H. Adaptation in Natural and Artificial Systems. The University of Michigan Press, 1975.

5.Емельянов В.В., Курейчик В.В., Курейчик В.М. Теория и практика эволюционного моделирования. – М.: ФИЗМАТЛИТ, 2003. – 432 c.

6.Фогель Л., Оуэнс А., Уолш М. Искусственный интеллект и эволюционное моделирование. М.: Мир, 1969. – 230 с.

7.Rechenberg I. Evolutionsstrategie: Optimierung Technischer Systeme nach Prinzipien der Biologischen Evolution. Werkstatt Bionik und Evolutionstechnik, Stuttgart: Frommann-Holzboog, 1973.

8.Schwefel H.-P. Numerische Optimierung von Computer-Modellen mittels der Evolutionsstrategie // Interdisciplinary Systems Research: – 1977.

– Vol. 26.

9.Koza J. Genetic programming: a paradigm for genetically breeding computer population of computer programs to solve problems. MIT Press, Cambridge, MA, 1992.

10.Whitley D.L. Genetic Algorithms and Evolutionary Computing. Van Nostrand's Scientific Encyclopedia 2002.

26

11.Heitkotter J., Beasly D. The Hitch-Hiker’s Guide to Evolutionary Computation: A List of Frequently Asked Questions (FAQ). ftp://rtfm.mit.edu:/pub/usenet/news.answers/ai-faq/genetшс/.

12.De Jong K. An analysis of the behavior of a class of genetic adaptive systems. Doctoral dissertation. – University of Michigan, Ann Arbor. – University Microfilms No. 76-9381. – 1975.

13.Gamma E., Helm R., Johnson R., Vlissides J. Design Patterns: Elements of Reusable Object-Oriented Software, Massachusetts: Addison-Wesley,

1995.

14.Гладков Л.А., Курейчик В.В., Курейчик В.М. Генетические алгоритмы / Под ред. В.М. Курейчика. – 2-е изд., испр. и доп. – М.: Физмат-

лит, 2006. – 320 с.

15.Turing A. M. Computing machinery and intelligence // Mind, 1950, vol. 236, no. 59.

16.Цой Ю.Р. ECWorkshop – инструментальная библиотека классов для эволюционных вычислений // Труды международных научнотехнических конференций «Интеллектуальные системы (IEEE AIS'07)» и «Интеллектуальные САПР (CAD-2007)». – М.: Физматлит, 2007. – C.94-101.

27