Генетический алгоритм для задачи максимизации заданной целочисленной функции

Автор работы: Пользователь скрыл имя, 05 Ноября 2015 в 18:04, курсовая работа

Краткое описание

Теория эволюции, впервые представленная Чарльзом Дарвином в работе «Происхождение видов путём естественного отбора» [5], оказала огромное влияние на мировоззрения людей. Несмотря на то, что работа содержала ряд ошибочных положений, в ней был выявлен главный механизм развития: отбор в сочетании с изменчивостью. Во многих случаях специфические особенности развития через изменчивость и отбор все еще не бесспорны, однако основные механизмы объясняют невероятно широкий спектр явлений, наблюдаемых в Природе.

Содержание

Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Глава 1

Генетические алгоритмы. История развития, основные понятия. Простой генетический алгоритм . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.1 История эволюционных вычислений . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.2 Символьная модель простого ГА . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1.3 Работа простого ГА. Отбор в группу размножения, кроссовер, мутация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
1.4 Шимы и строящие блоки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
Глава 2

Генетический алгоритм для задачи максимизации заданной целочисленной функции. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.1 Применимость ГА к задаче максимизации значения функции . . . . . .
10
2.2 Постановка задачи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
2.3 Описание алгоритма . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.4 Результаты работы и выводы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
Заключение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
Список использованных источников . . . . . . . . . . . . . . . . . . . . .

Вложенные файлы: 1 файл

Курсовая 3 курс.doc

— 216.00 Кб (Скачать файл)

/// <returns>Копия</returns>

public Genotype Clone()

{

Genotype g = new Genotype(this);

return g;

}

 

/// <summary>

/// Метод генерации генотипа

/// </summary>

public void GenerateRandGenotype()

{

for (int i = 0; i < 4; i++)

{

_gen[_s[i]] = _rg.Next(NMAX);

}

}

 

/// <summary>

/// Метод получения потомка в результате кроссинговера

/// </summary>

/// <param name="place">Точка кроссинговера</param>

/// <param name="m">1 родитель</param>

/// <param name="f">2 родитель</param>

public void MakeCross(int place, Genotype m, Genotype f)

{

for (int i = 0; i < place; i++)

{

this._gen[1 << i] = m.ByteGens[1 << i];

}

for (int i = place; i < Genotype.Length; i++)

{

this._gen[1 << i] = f.ByteGens[1 << i];

}

}

 

/// <summary>

/// Доступ к участкам, отвечающим за каждую из переменных

/// </summary>

/// <param name="idx">Индекс переменной (от 0 до 3)</param>

/// <returns>Значение переменной</returns>

public int this[int idx]

{

get

{    

return _gen[_s[idx]];

}

set

{

_gen[_s[idx]] = value;

}

}

/// <summary>

/// Свойство, реализующее доступ к битовому вектору

/// </summary>

public BitVector32 ByteGens

{

get { return _gen; }

set { _gen = value; }

}

 

/// <summary>

/// Метод, моделирующий мутацию генотипа

/// </summary>

public void MakeMutation()

{

this._gen[1 << _rg.Next(Genotype.Length)] =

!this._gen[1 << _rg.Next(Genotype.Length)];

}

 

#region IComparable<Genotype> Members

 

public int CompareTo(Genotype other)

{

if (this.FitFunction > other.FitFunction)

return 1;

if (this.FitFunction < other.FitFunction)

return -1;

return 0;

}

 

#endregion

 

public override string ToString()

{

return string.Format("x1 = {0}, x2 = {1}, x3 = {2}, x4 = {3}",

this[0], this[1], this[2], this[3]);

}

}


Информация о работе Генетический алгоритм для задачи максимизации заданной целочисленной функции