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

Тема в разделе "Pascal and Delphi", создана пользователем sargo, 29 дек 2011.

  1. sargo

    sargo Гость

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

    Код (Text):
    {
    Отбор претендентов на скрещивание
    }
    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;
     
  2. Vadik(R)

    Vadik(R) Well-Known Member

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

Поделиться этой страницей