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

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





каємо біти для обміну}:=1 + Random (flchrom);

jcross1:=1 + Random (flchrom);

{Цикл до тих пір, поки не будуть обрані різні гени}

while jcross=jcross1 do:=1 + Random (flchrom);

{Обмінюємо}:=a [jcross]; [jcross]:=a [jcross1]; [jcross1]:=d ;;;

Однак мутація відбувається тільки з імовірністю PMutation т.к. в природі мутації наступають не часто. Імовірність мутації в програмі встановлена ??згідно методичному посібнику в 1%.

Процедура Crossover реалізує оператор схрещування. Схрещування відбувається з деякою ймовірністю PCross.

Кожна обрана таким чином пара рядків схрещується таким чином: якщо схрещування має статися, то нарощується лічильник схрещувань і нащадки успадковують гени шляхом обміну усіма елементами. Нащадки з імовірністю 50% успадковують гени або одного, або другого батька.

Після цього нащадки заміщають батьківські особини в проміжній популяції. Після схрещування може наступити мутація. Якщо ж схрещування не відбувається, то нащадками стають самі батьки.



Дана процедура використовує наступні змінні :, parent2 - хромосоми батьків;, child2 - хромосоми нащадків; - довжина хромосоми (кількість генів) ;, nmutation - лічильники кількості схрещувань і мутацій;

Код процедури: Crossover (var Parent1, Parent2, Child1, Child2: Chromosome ;: integer; var NCross, NMutation: integer); j: integer; Flip (PCross) then {Схрещування з імовірністю PCross} (NCross); {Нарощуємо лічильник схрещувань} j:=1 to flchrom do

{Виробляємо схрещування} Flip (0.5) then

child1 [j]:=parent1 [j]; [j]:=parent2 [j]; [j]:=parent2 [j]; [j]:=parent1 [j] ;;;

{двоточкову мутація} (Child1, NMutation, flchrom); (Child2, NMutation, flchrom) ;;

Процедура Generation використовується для генерації нового покоління за допомогою операторів відбору, схрещування і мутації.

Для декодування рядки бітів в дійсне число використовується процедура Decode.

На першому етапі зазвичай робиться припущення, що змінні, що представляють параметри, можуть бути представлені бітовими рядками. Це означає, що змінні попередньо дискретизируются деяким чином і що область дискретних значень відповідає деякій мірі 2. Наприклад, з 20 бітами на параметр ми отримуємо область з 220=1048576 дискретних значень. Якщо параметри неперервні, то проблема дискретизації не заслуговує особливої ??уваги. Зрозуміло, передбачається, що дискретизація забезпечує достатнє дозвіл, щоб зробити можливим регулювання отримання результату з бажаним рівнем точності. Передбачається також, що дискретизація в деякому розумінні представляє основну функцію. Бітову рядок довжини N можна розглядати як ціле двійкове число I, якому відповідає деякий дійсне значення r із заданого діапазону. Це відповідність встановлюється формулою


.


У нашому випадку n=20.

Для отримання статистичних даних: мінімального, максимального і середнього значень цільової функції (у програмі задана у вигляді функції ObjFunc) використовується процедура Statistics. За допомогою даної процедури знаходяться статистичні дані. В основній програмі вона використовується наступним чином: по всій популяції вважається функція придатності, знаходиться максимальне і мінімальне значення цільової функції а також її середнє.

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;

Каркасом для побудови рішення задачі була програма реалізована в методичному посібнику. Вона була вивчена, узагальнена і модифікована під поточну задачу.

У порівнянні із запропонованою програмою внесені наступні зміни:

. Змінено простір пошуку і одновимірного випадку на двовимірний.

. Змінено процедури схрещування і мутації відповідно до варіанта.

. Програма виконує по 30 прогонів з метою поліпшення достовірності результату.

. Змінено цільова функція і межі пошуку мінімуму.

Більше змін немає.


Тестування


У процесі тестування програми були отримані наступні результати:


Кількість поколенійРазмер популяцііСреднее значення мінімумаЛучшее значення мінімума4084.010E + 00001.079E + 0000121.080E + 00006.346E - 0001201.069...


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





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

  • Реферат на тему: Схрещування у свинарстві
  • Реферат на тему: Промислове схрещування свиней
  • Реферат на тему: Особливості маркетингу в сфері Фітнес послуг на прикладі фітнес-клубу &Fitn ...
  • Реферат на тему: Мутації і нові гени. Чи можна стверджувати, що вони служать матеріалом Мак ...
  • Реферат на тему: Рішення задачі знаходження мінімуму цільової функції