Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Програма для пошуку мінімуму функції двох дійсних змінних в заданій області

Реферат Програма для пошуку мінімуму функції двох дійсних змінних в заданій області





E + 00001.181E - 00028082.112E + 00001.610E + 0000129.131E - 00017.597E - 0002205.579E - 00014.632E- 0002 Висновки


В результаті тестування програми можна зробити висновок, що на точність результату впливають такі чинники: кількість поколінь і кількість особин.

Так, чим більше особин бере участь в генетичному відборі (більший розмір популяції)), тим більш точний виходить результат; чим більша кількість поколінь живуть особини, тим точніше виходить результат.

Після зіставлення двох факторів впливу: розміру популяцій і числа поколінь можна зробити з отриманих результатів можна зробити висновок, що найбільший вплив на точність результату надає число поколінь, тому що чим більше покоління, тим краще значення має функція придатності.


Література


1. Змитрович А. І. Інтелектуальні інформаційні системи.- Мн.: ТетраСистемс, 1997. - 368 с.

. Батищев Д. А. Генетичні алгоритми вирішення екстремальних завдань.- Воронеж: Вид.-во ВГТУ, 1995.

. Ємельянов В. В., Курейчик В. В., Курейчик В. М. Теорія і практика еволюційного моделювання.- М.: Фізматліт, 2003. - 432 с.


Додаток

Genetic; Crt;

const=30; {Кількість прогонів}=100; {Максимальне число поколінь}=20; {Число бітів на один кодується параметр}=2; {Розмірність простору пошуку}=40; {Кількість поколінь}=80;=8; {Розмір популяції}=12;=20;=0.01; {Імовірність схрещування}=0.9; {Імовірність мутації}=boolean; {Алель - позиція в бітової рядку}

Chromosome=array [1..LenChrome * Dim] of Allele; {Бітова рядок}=array [1..Dim] of double;=record: Chromosome; {Генотип=бітова рядок}

x: Fenotype; {Фенотип=масив дійсних координат точки в просторі пошуку}: double; {Значення цільової функції}

end;=array [1..maxpop] of Individual;

const

{масив максимальних значень для координат точки в просторі пошуку}: Fenotype=(2.048, 2.048);

{масив мінімальних значень для координат точки в просторі пошуку}: Fenotype=(- 2.048, - 2.048);

{Три непересічних популяції - стара, нова і проміжна}, NewPop, IntPop: Population;

{Глобальні цілі змінні}

PopSize, Gen, h, s, b: integer;

{Лічильники мутацій, схрещувань і кількість поколінь}, NCross, NGen: integer;

{Статистичні змінні}

Avg, Min, Max, BestMin, Result, SumFitness: double;

{Функція} ObjFunc (x: Fenotype): double;:=100 * Sqr (Sqr (x [1]) - Sqr (x [2])) + Sqr (1 - x [1 ]);

end;

{Підкидання монетки - true якщо орел}

function Flip (Probability: double): boolean;:=Random lt;=Probability ;;

{Декодування рядка в масив дійсних координат у просторі пошуку}

procedure Decode (Chrom: Chromosome; var x: fenotype); i, j, f, accum: longint; i:=1 to Dim do:=0;:=1; j:=1 + LenChrome * (i - 1) to LenChrome + LenChrome * (i - 1) doChrom [j] then Inc (Accum, f);:=f * 2 ;; [i]:=xmin [i] + (xmax [ i] - xmin [i]) * Accum/(f - 1);

end;

{Розрахунок статистичних величин}

procedure Statistics (var Max, Avg, Min: double; Pop: Population); j: integer ;: double;:=Pop [1] .Fitness;:=Pop [1] .Fitness; :=Pop [1] .Fitness; j:=2 to PopSize do

with Pop [j] do

{Накопичення суми значень функції придатності}

SumFitness:=SumFitness + Fitness; Fitness gt; Max then Max:=Fitness; {Нове значення Max} Fitness lt; Min then Min:=Fitness; {Нове значення Min};:=SumFitness/PopSize; {Розрахунок середнього}

end;

{Ініціалізація початкової популяції випадковим чином}

procedure InitPop; i, j: integer; i:=1 to PopSize doOldPop [i] doj:=1 to LenChrome * Dim do [j]:=Flip (0.5); {Кидок монети}

Decode (Chrom, x); {Декодування рядки}

{Обчислення початкових значень функції придатності}

Fitness:=ObjFunc (x) ;;;

{Оператор відбору (селекції)} Select; ipick, i: integer;

{Процедура перемішування популяції в процесі відбору}

procedure Shuffle (var pop: Population) ;, j: integer ;: Individual; i:=1 to PopSize do:=1 + Random (i);

{Перемішуємо}:=pop [i]; [i]:=pop [j]; [j]:=ind0 ;;;

{В...


Назад | сторінка 7 з 8 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Особливості маркетингу в сфері Фітнес послуг на прикладі фітнес-клубу &Fitn ...
  • Реферат на тему: Double Standards in Modern Politics
  • Реферат на тему: Double Entry Types of Balance Sheet
  • Реферат на тему: Double electric layer. Mechanism of formation and theory of structure
  • Реферат на тему: Наступність і індивідуальність поколінь