Автор работы: Пользователь скрыл имя, 31 Декабря 2010 в 00:58, курсовая работа
Принятие решения в большинстве случаев заключается в генерации всех возможных альтернатив, их оценке и выборе лучшей среди них. Принять "правильное" решение - значит выбрать такой вариант из числа возможных, в котором с учетом всех разнообразных факторов и противоречивых требований будет оптимизирована некая общая ценность, то есть решение будет в максимальной степени способствовать достижению поставленной цели.
ВВЕДЕНИЕ 5
1 МОДЕЛИРОВАНИЕ РАБОТЫ НЕЙРОННОЙ СЕТИ 6
2 АЛГОРИТМ ОБРАТНОГО РАСПРОСТРОНЕНИЯ ОШИБКИ 10
3 ГЕНЕТИЧЕСКИЙ АЛГОРИТМ 15
4 ЭФФЕКТИВНОСТЬ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ 22
4.1 Показатели эффективности генетических алгоритмов 22
4.2 Скорость работы генетических алгоритмов 22
4.3 Устойчивость работы генетических алгоритмов 24
4.4 Направления развития генетических алгоритмов 27
ЗАКЛЮЧЕНИЕ 30
СПИСОК ЛИТЕРАТУРЫ 31
ПРИЛОЖЕНИЕ 32
Еще одним важнейшим фактором, влияющим на эффективность генетического алгоритма, является оператор отбора. Слепое следование принципу "выживает сильнейший" может привести к сужению области поиска и попаданию найденного решения в область локального экстремума целевой функции. С другой стороны, слишком слабый оператор отбора может привести к замедлению роста качества популяции, а значит, и к замедлению поиска. Кроме того, популяция при этом может не только не улучшаться, но и ухудшаться. Самыми распространенными операторами отбора родителей являются:
- случайный равновероятный отбор;
- рангово-пропорциональный отбор;
- отбор пропорционально значению целевой функции.
Виды операторов редукции особей с целью сохранения размера популяции практически совпадают с видами операторов отбора родителей. Среди них можно перечислить:
- случайное равновероятное удаление;
- удаление К наихудших;
- удаление, обратно пропорциональное значению целевой функции.
Поскольку
процедуры отбора родителей и
редукции разнесены по дей
ствию во времени и имеют разный смысл,
сейчас ведутся активные иссле
дования с целью выяснения, как влияет
согласованность этих процедур на
эффективность генетического алгоритма. /
Одним из параметров, также влияющих на устойчивость и скорость поиска, является размер популяции, с которой работает алгоритм. Классические генетические алгоритмы предполагают, что размер популяции должен быть фиксированным. Такие алгоритмы называют алгоритмами стационарного состояния. В этом случае оптимальным считается размер 21о§2(и), где п - количество всех возможных решений задачи.
Однако практика показала, что иногда бывает полезно варьировать размер популяции в определенных пределах. Подобные алгоритмы получили название поколенческих [82]. В данном случае после очередного порождения потомков усечения популяции не происходит. Таким образом, на протяжении нескольких итераций размер популяции может расти, пока не достигнет определенного порога, После чего популяция усекается до своего исходного размера. Такой подход способствует расширению области поиска, но вместе с тем не ведет к значительному снижению скорости, поскольку усечение популяции, хотя и реже, но все же происходит.
Практическая деятельность человека ставит перед наукой все новые исследовательские задачи祥 Область применения генетических алгоритмов постоянно расширяется, что требует их совершенствования и исследования. Перечислим несколько новых задач, которые могут решаться с использованием генетических алгоритмов, и связанные с ними направления исследований в этой области:
1) разработка
новых методов тестирования генетических
алгоритмов;
разработка адаптивных генетических алгоритмов;
До недавнего времени в качестве критерия качества большинства конкретных генетических алгоритмов использовалась эффективность решения задачи получения битового вектора с максимальным числом единичных разрядов. Чем быстрее алгоритм находил наилучшее решение, тем он считался эффективнее. Сейчас эта задача уже не является объективным средством тестирования алгоритмов, что свидетельствует об их бурном развитии не только с точки зрения применимости к тем или иным классам задач, но и с точки зрения их внутреннего построения и принципов работы.
В
области исследований, направленных
на повышение эффективности
Идея адаптивных генетических алгоритмов получила свое воплощение в концепции, представляющей многоуровневые генетические алгоритмы. Нижний уровень такого алгоритма непосредственно выполняет задачу улучшения популяции решений. Верхние уровни представляют собой генетические алгоритмы, решающие оптимизационную задачу по улучшению параметров алгоритма нижнего уровня. При этом в качестве целевой функции используется обычно скорость работы алгоритма нижнего уровня и скорость улучшения им популяции от поколения к поколению.
Традиционные
оптимизационные задачи имеют целевую
функцию с фиксированной
До
сих пор продолжается дискуссия
между сторонниками универсальных
и проблемно-ориентированных
Перспективным направлением развития является добавление к генетическим операторам ламарковских операторов, которые позволяют вводить в рассмотрение признаки, приобретенные особью не в результате наследования, а в течение своего жизненного цикла. Это еще более приближает модель генетических алгоритмов к природным процессам и, по мнению ученых, способно повысить их эффективность.
Идея приближения генетических алгоритмов к реальному эволюционному процессу нашла свое отражение и в предложениях ввести в рассмотрение такие понятия, как вид и пол, учитывать взаимодействие особей в популяции в процессе "жизни", причем особей как одного вида, так и различных. Это позволит моделировать процессы сотрудничества, отношений хозяев и паразитов и т. д.
Помимо этих новых течений в области исследования генетических алгоритмов ведутся работы и в традиционных направлениях. Создаются все новые разновидности операторов отбора, скрещивания и мутации. Конструируются адаптивные алгоритмы, совершенствуются методы распараллеливания вычислений и структурирования популяций. Одновременно разрабатываются методики оценки эффективности и тестирования генетических алгоритмов.
Таким
образом, генетические алгоритмы представляют
собой одну из важных и активно
развивающихся парадигм обширной области
алгоритмов поиска оптимальных решений.
И в последнее время, с развитием методов
компьютерной поддержки принятия решений,
они приобретают все большее значение.
В ходе данной работы была построена модель нейрона, нейронной сети. Для обучения сети был использовании алгоритм обратного распространения ошибки, являющийся наиболее распространённым алгоритмом при обучении нейронных сетей. Для обучения сети был применен генетический алгоритм. Программирование и обучение нейронных сетей очень интересное и увлекательное занятие. Роль генетических алгоритмом и нейронных сетей в настоящее время очень велика, поэтому знание и умение программировать их необходимо знать.
1) Курс лекций по дисциплине «Интеллектуальные ИС», Гурьев А.Т. , 2008
2) Лабораторный практикум по дисциплине «Интеллектуальные ИС», 2008г.
3) Методические пособия по дисциплине «Интеллектуальные ИС», 2008г.
4) Нейрокомпьютерная техника, Ф.Уоссермен, 1992.
5) Нейронные сети: основные положения, С.Короткий, 2008г.
(обязательное)
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
using System.IO;
namespace neuro
{
struct SandY//резултат работы нейрона
{
public double S;//сумма
public double Y;//значение активизационной функции
}
class Program
{
static Random ver = new Random();
static int s = 0;//для рандомайза
static int[] NMinIndexesValue(int N, double[] mass)//Возвращает N индексов для наименьших значений mass
{
int[] resultMin = new int[N];
double[] arr = new double[mass.Length];
int[] ind = new int[mass.Length];
for (int i = 0; i < mass.Length; i++)
{
arr[i] = mass[i];
ind[i] = i;
}
double x;
int x1;
for (int i = 0; i < mass.Length; i++)
{
for (int j = mass.Length - 1; j > i; j--)
{
}
}
for (int n = 0; n < N; n++)
{
result
}
return resultMin;
}
static void mutation(double[][] W)// оператор мутации
{
Random rnd = new Random(s);
int rnd1 = rnd.Next(0, 5);
int rnd2 = rnd.Next(0, 5);
double[] temp = new double[W[rnd1].Length];
double[] temp2 = new double[W.Length];
//меняет