Автор работы: Пользователь скрыл имя, 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
Список использованных источников . . . . . . . . . . . . . . . . . . . . .
/// <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]);
}
}
Информация о работе Генетический алгоритм для задачи максимизации заданной целочисленной функции