Описание Функции Select_1

  • Автор темы sargo
  • Дата начала
S

sargo

Гость
#1
Здравствуйте всем!
Помогите пожалуйста описанием функции Select_1 в процедуре Select на языке Паскаль.
Есть процедура select из программы генетического алгоритма по одноточечному скрещиванию и инверсионной мутации. ЗАДАЧА УЖЕ РЕШЕНА.
Но преподаватель мне дала дополнительный вопрос:
- опишите назначение функции select_1 Вашей программы и как она работает?
А я в этой программе ничего не смыслю.
Можете мне в этом помочь: просто описать что делает функция Select_1 и построчно прокомментировать её?

Код:
{
Отбор претендентов на скрещивание
}
Procedure select;
Var ipick:integer;

{
Перемешивание популяции
}
Procedure shuffle(var pop:population);
Var
i, j: integer;
ind0: individual;
Begin
for i := popsize downto 2 do begin
j:= random(i-1)+1;
ind0:=pop[i];
pop[i]:=pop[j];
pop[j]:=ind0;
end;
End;

{
Выборка
}

Function select_1:integer;
Var j1, j2, m: integer;
Begin
{
если ipick больше количества индивидов в популяции, то необходимо перемешать ее
}
if (ipick>popsize) then begin
shuffle(oldpop);
ipick:=1
end;
j1:=ipick;
j2:=ipick+1;
if (oldpop[j2].fitness<oldpop[j1].fitness) then
m:=j2
else
m:=j1;
ipick:=ipick+2;
select_1:=m;
End;
Var j: integer;
Begin
ipick:=1;
for j:=1 to popsize do begin
intpop[j]:=oldpop[select_1];
end;
oldpop:=intpop;
End;
 

Vadik(R)

Well-Known Member
12.12.2007
469
0
#2
Сложно определить, что происходит в функции, так как не ясно, для чего массив oldpop, что такое ipick... В общем, выборка какая-то в этой функции происходит, выборка :)