• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

sargo

Здравствуйте всем!
Помогите пожалуйста описанием функции 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;
 
V

Vadik(R)

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!