Разработка обучающего модуля для работы с генетическими алгоритмами

1.

Выполнила: ст.гр. ИТ-51
Пискулина М. С.
Дипломный руководитедь:
Катковская К. В.

2.

Пискулина Маргарита
Разработка обучающего модуля для работы с
генетическими алгоритмами
Задачи программного модуля
1 Возможность реализации различных видов генетических
алгоритмов;
2 Возможность выбора тематики различных классов задач;
3 Наглядное интерактивное и динамическое представление
этапов
решения задач, в зависимости от выбранного
алгоритма;
4 Наличие справки по использованию модуля.
2 из 13

3.

Разработка обучающего модуля для работы
с генетическими алгоритмами
Пискулина Маргарита
ИС «GenSearch»
Flex Tool
3Genetic
ECL
Delphi
Matlab
Java
Java
Доступ
Платная
Платная
Платная
Бесплатная
Интерфейс
Текстовый
Текстовый
Графический
Графический
Задачи
Осуществление
Выбор ГА, выбор
Предназначена для
Поддерживает ряд
генетического поиска,
метода селекции и решения задач
обеспечение настроек и
способа
различных областей эволюционных
управление всеми его
кодирования.
при помощи ГА, а
элементами.
Нахождение более также как средство
ГА, генетическое
чем одного
тестирования и
программирование,
оптимума.
сравнения
эволюционные стратегии,
различных ГА.
оптимизация большого
Язык
программировани
я
технологий
вычислений, таких как,
числа частиц.
Возможность
нет
нет
нет
нет
нет
нет
нет
доступного
освоения шагов
алгоритма.
Возможность
нет
доступного
обучения
пользователя.
3 из 13

4.

Разработка обучающего модуля для работы с
генетическими алгоритмами
Пискулина Маргарита
Общая схема модуля
4 из 13

5.

Пискулина Маргарита
Разработка обучающего модуля для работы с
генетическими алгоритмами
Внешний вид программного модуля для решения задач
5 из 13

6.

Пискулина Маргарита
Разработка обучающего модуля для работы с
генетическими алгоритмами
Нахождение минимального расстояния между городами
6 из 13

7.

Пискулина Маргарита
Разработка обучающего модуля для работы с
генетическими алгоритмами
Пример динамичности программы
13 из 13

8.

Разработка обучающего модуля для работы с
генетическими алгоритмами
Пискулина Маргарита
Создание начальной популяции
011101
Отбор
011.101
Размножение
Инверсия
Переход к новому
поколению
110.101
Мутация
Результат
011101
011.101
7 из 13

9.

Пискулина Маргарита
Создание начальной популяции
1
1
//Изначальный геном
2
2
initialGenome: function
3
(fromCityName){
4
3
//Если город найден в (переменной
5
geoCities = база)
4
if(geoCities.indexOf(fromCityName)>-){ 6
7
5
// Пути
8
6
var wayIdx = [];
9
7
//Фильтр, берем только те точки,
10
которые подходят
11
по месторасположению, и каждую
12
8
$.grep(geoDATA, function(n){ return
13
n.from == fromCityName;
14
}).map(function(n){
(i,
9
//Запоминаем в wayIdx
15
10 wayIdx.push([$(geoDATA).index(n)]);
16
11 });
17
12 //Записываем это как новый геном
18
13 this.genome = wayIdx;
19
14 return true;
20
15 } else {
21
16 return false;}}
22
23
(i,
24
25
Разработка обучающего модуля для работы с
генетическими алгоритмами
Отбор
//Фитнесс функция
fitness: function () {
var fitness = [];
//Каждый элемент генома
$(this.genome).map(function(i,elem){
//Запомним последний элемент генома
var lastElem = elem[elem.length-1];
// Если точка отправления последнего
элемента равна конечной
if(geoDATA[lastElem].to == geneticTSP.to){
//Запишем
fitness.push(elem)}});
//Каждый новый найденый маршрут
var asa = $(fitness).map(function
elem){
//Соеденяем через запятую
return elem.join(',');
}).get();
var newFitness = [];
//Каждый найденый маршрут
asa.map(function(i){
if(newFitness.indexOf(i)<0) {
newFitness.push(i);}});
newFitness = $(newFitness).map(function
elem) {
return [elem.split(',')];}).get();
this.genome = newFitness;}
8 из 13

10.

Пискулина Маргарита
Размножение
1
mutation: function () {
2
var newGenome = [];
3
//Каждый элемент генома
4
$(this.genome).map(function (i, elem) {
5
//Последний элемент генома
6
var lastElem = elem[elem.length-1];
7
//Если это конечный маршрут - больше не
строим его
8
if(geoDATA[lastElem].to == geneticTSP.to)
return;
9
//Ищим новые варианты путей
10 var newWays =
geneticTSP.getWaysByCheckpoint(geoDATA[lastElem]
.to);
11 //Все найденые пути
12 $(newWays).map(function (way) {
13 //Записываем в новый геном
14 newGenome.push(elem.concat(parseInt(this)));
15 });
16 });
17 //Следующее поколение
18 this.generation++;
19 //Записываем обновленные маршруты
20 this.genome = this.genome.concat(newGenome);
21 }
Разработка обучающего модуля для работы с
генетическими алгоритмами
Результат
1
...
2
$('.frame .output').html(html);
3
//записываем вывод результата в
окно с классом .output
4
sys.renderer =
Renderer("#"viewport")
5
//начинаем рисовать в выбраной
области график
6
$.each(geoCities,
function(i,node){
7
sys.addNode(node); //добавляем
вершину});
8
$.each(geoDATA, function(i,edge){
9 sys.addEdge(sys.getNode(edge.from),
sys.getNode(edge.to));
10 });
11 ...
9 из 13

11.

Пискулина Маргарита
Разработка обучающего модуля для работы с
генетическими алгоритмами
Реализация задачи «Случайная строка»
10 из 13

12.

Пискулина Маргарита
Нахождение «Минимума функции»
Разработка обучающего модуля для работы с
генетическими алгоритмами
11 из 13

13.

Пискулина Маргарита
Разработка обучающего модуля для работы с
генетическими алгоритмами
Результат работы кнопки помощь
12 из 13
English     Русский Правила