TUSUR Help
KURSOVIK.COM - контрольные, курсовые, дипломные работы на заказ
 
Навигация портала

Навигация форума

Программирование С++, Pascal, Delphi и т.п.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Информатика 3 Дядя Слава Прочее 3 18.03.2008 19:49
информатика valer Прочее 0 20.10.2004 19:40
Информатика-1 ZZZ Программирование 4 27.07.2004 21:50
Информатика 2 Aid$ Программирование 1 13.06.2004 15:18
информатика, КСЕ Nastasia Прочее 2 26.04.2004 10:00

Ответ
 
LinkBack Опции темы

  #71
Старый 13.05.2011
Astilla Женщина
Коммерсант
 
Аватар для Astilla
Доп. информация
 
Регистрация: 27.01.2007
Специальность: 000000
Семестр: Абитуриент
Цифры пароля: 00
Город: Россия
Сообщений: 203
Сказал(а) спасибо: 8
Поблагодарили 20 раз(а) в 17 сообщениях
Вес репутации: 61 Astilla на пути к лучшему
По умолчанию

Цитата:
Сообщение от Dimmchik Посмотреть сообщение
Как ее переделать в процедуру равномерного скрещивания? Пожалуйста помогите!!!
Было найдено когда-то на просторах Интернета - Равномерное скрещивание и инверсионная мутация
Вложения
Тип файла: zip genetich_algoritm.zip (94.8 Кб, 40 просмотров)
__________________
Информационные технологии :: Стастистика:: Эконометрика
Astilla вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Dimmchik (13.05.2011)
Поддержите наш проект, нажмите на любой рекламной ссылке.
Реклама на форуме
  #72
Старый 13.05.2011
Dimmchik Мужчина
Новичок
 
Аватар для Dimmchik
Доп. информация
 
Регистрация: 11.05.2011
Специальность: 000000
Семестр: 3
Цифры пароля: 00
Город: Красноярск
Сообщений: 5
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0 Dimmchik пока неопределено
По умолчанию

помогите пожалуйста написать функцию двухточечной мутации.
Dimmchik вне форума   Ответить с цитированием
  #73
Старый 13.05.2011
Astilla Женщина
Коммерсант
 
Аватар для Astilla
Доп. информация
 
Регистрация: 27.01.2007
Специальность: 000000
Семестр: Абитуриент
Цифры пароля: 00
Город: Россия
Сообщений: 203
Сказал(а) спасибо: 8
Поблагодарили 20 раз(а) в 17 сообщениях
Вес репутации: 61 Astilla на пути к лучшему
По умолчанию

{двухточечное скрещивание}
procedure crossover(var parent1, parent2, child1, child2:chromosome;
flchrom:integer);
var
jcross,
j:integer;
begin

if flip(pcross) then begin {Выполняется скрещивание с вероятностью pcross}
jcross:=rnd(1,flchrom-1); {Определение точки скрещивания в диапазоне между 1 и l-1}
ncross:=ncross + 1; {Увеличение счетчика скрещиваний}
end else
jcross:=flchrom;
{2-х точечная мутация}
mutation(parent1,flchrom);
mutation(parent2,flchrom);

{первая часть обмена , 1 to 1 and 2 to 2}
for j := 1 to jcross do begin
child1[j]:=parent1[j];
child2[j]:=parent2[j];
end;

if jcross<>flchrom then
{если точка скрещивания равна flchrom--скрещивание не происходит}
for j := jcross+1 to flchrom do begin {вторая часть обмена, 1 to 2 and 2 to 1}
child1[j]:=parent2[j];
child2[j]:=parent1[j];
end;
end;
__________________
Информационные технологии :: Стастистика:: Эконометрика
Astilla вне форума   Ответить с цитированием
  #74
Старый 14.05.2011
Dimmchik Мужчина
Новичок
 
Аватар для Dimmchik
Доп. информация
 
Регистрация: 11.05.2011
Специальность: 000000
Семестр: 3
Цифры пароля: 00
Город: Красноярск
Сообщений: 5
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0 Dimmchik пока неопределено
По умолчанию

Да но для того что бы выполнить mutation(parent1,flchrom); должна быть описана функция function mutation с алгоритмом 2-ух точечной мутацией. Конечно это если я правильно всё понимаю.
Dimmchik вне форума   Ответить с цитированием
  #75
Старый 14.05.2011
Dimmchik Мужчина
Новичок
 
Аватар для Dimmchik
Доп. информация
 
Регистрация: 11.05.2011
Специальность: 000000
Семестр: 3
Цифры пароля: 00
Город: Красноярск
Сообщений: 5
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0 Dimmchik пока неопределено
По умолчанию

Я склепал вот такой код программы равномерное скрещивание и и 2-ух точечная мутация, на ваш профессиональный взгляд он правильный или бред сумасшедшего! Прошу строго не судить я обучаюсь дистанционно и мне pascal, а точнее генетические алгоритмы сложно даются.

{2-х точечная мутация}

function mutation (var child:chromosome; alleleval:allele; pmutation:real;
var nmutation:Integer; flchrom:Integer):allele;
var
p,mutate : boolean;
j1,j2 : integer;
Begin
mutate:=flip(pmutation);
if mutate
then
begin
repeat
begin
j1 := rnd(1, flchrom-1);
j2 := rnd(1, flchrom-1);
end;
until j1<>j2;
mutation := Not alleleval;
p := child[j1];
child[j1] := child[j2];
child[j2] := p;
nmutation := nmutation+1;
end
else mutation := alleleval;
end;

{Равномерное скрещивание и 2-ух точечная мутация}

procedure crossover(var parent1,parent2,child1,child2:chromosome;
flchrom:integer; Var ncross,nmutation,jcross:integer;
Var pcross,pmutation:real);
var
j:integer;
begin
if flip(pcross)
then
begin
for j:=1 to lchrom*dim do
begin
if flip(0.5)
then
begin
child1[j]:=mutation(parent1, parent1[j], pmutation, nmutation, flchrom);
child2[j]:=mutation(parent2, parent2[j], pmutation, nmutation, flchrom);
end
else
begin
child1[j]:=mutation(parent2, parent2[j], pmutation, nmutation, flchrom);
child2[j]:=mutation(parent1, parent1[j], pmutation, nmutation, flchrom);
end;
end;
end;
end;
Dimmchik вне форума   Ответить с цитированием
  #76
Старый 16.05.2011
zasf30 Мужчина
Новичок
 
Аватар для zasf30
Доп. информация
 
Регистрация: 08.03.2010
Специальность: 000000
Семестр: Абитуриент
Цифры пароля: 00
Город: Щелково
Сообщений: 6
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0 zasf30 пока неопределено
По умолчанию

Всем доброго времени суток.
Прошу помощи по курсовому генетические алгоритмы,
ну ни как не могу въехать в этот алгоритм, нужны примеры с двухточечным скрещиванием и инверсионной мутацией (вариант 4 но пойдут и другие варианты с такими-же условиями), кому не трудно скиньте на SerjWahs@yandex.ru
Заранее спасибо.
zasf30 вне форума   Ответить с цитированием
  #77
Старый 16.05.2011
zasf30 Мужчина
Новичок
 
Аватар для zasf30
Доп. информация
 
Регистрация: 08.03.2010
Специальность: 000000
Семестр: Абитуриент
Цифры пароля: 00
Город: Щелково
Сообщений: 6
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0 zasf30 пока неопределено
По умолчанию

Кто нибудь поправьте если я не правильно понимаю двухточечное скрещивание и инверсионную мутацию.
Миниатюры
informatika-4.jpg  
zasf30 вне форума   Ответить с цитированием
  #78
Старый 16.05.2011
zasf30 Мужчина
Новичок
 
Аватар для zasf30
Доп. информация
 
Регистрация: 08.03.2010
Специальность: 000000
Семестр: Абитуриент
Цифры пароля: 00
Город: Щелково
Сообщений: 6
Сказал(а) спасибо: 1
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0 zasf30 пока неопределено
По умолчанию

Цитата:
Сообщение от Astilla Посмотреть сообщение
Было найдено когда-то на просторах Интернета - Равномерное скрещивание и инверсионная мутация

Вот этот код для инверсионной мутации?

function mutation(alleleval:allele):allele;
var
mutate:boolean;
begin
mutate:=flip(pmutation);
if mutate then
mutation:=not alleleval
else
mutation:=alleleval;
end;

Но мутация же должна происходить после процедуры скрещивания, а в результате скрещивания получается два потомка и каждый подвергается мутации, тогда этот код программы надо применить к обоим потомкам или я не прав.
zasf30 вне форума   Ответить с цитированием
  #79
Старый 20.05.2011
Astilla Женщина
Коммерсант
 
Аватар для Astilla
Доп. информация
 
Регистрация: 27.01.2007
Специальность: 000000
Семестр: Абитуриент
Цифры пароля: 00
Город: Россия
Сообщений: 203
Сказал(а) спасибо: 8
Поблагодарили 20 раз(а) в 17 сообщениях
Вес репутации: 61 Astilla на пути к лучшему
По умолчанию

Цитата:
Сообщение от zasf30 Посмотреть сообщение
Вот этот код для инверсионной мутации?
Но мутация же должна происходить после процедуры скрещивания, а в результате скрещивания получается два потомка и каждый подвергается мутации, тогда этот код программы надо применить к обоим потомкам или я не прав.
См ниже

{Равномерное скрещивание}
procedure crossover(var parent1, parent2, child1, child2:chromosome);

var
j:integer;
begin
if flip(pcross) then begin

for j:=1 to lchrom*dim do begin
if flip(0.5)then begin
child1[j]:=mutation(parent1[j]);
child2[j]:=mutation(parent2[j]);
end
else
begin
child1[j]:=mutation(parent2[j]);
child2[j]:=mutation(parent1[j]);
end;
end;
end;
end;
__________________
Информационные технологии :: Стастистика:: Эконометрика
Astilla вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
zasf30 (02.06.2011)
  #80
Старый 10.01.2012
sergejzz Мужчина
Новичок
 
Аватар для sergejzz
Доп. информация
 
Регистрация: 10.01.2012
Специальность: 210405
Семестр: 6
Цифры пароля: 00
Город: Красноярск
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Вес репутации: 0 sergejzz пока неопределено
По умолчанию

Скиньте 9 вариант, у кого есть, пожалуйста=)
sergejzz вне форума   Ответить с цитированием
Ответ

Метки
begin, вариант, должно, есть, информатика, чуть, этот


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Вкл.
Refbacks are Вкл.

Быстрый переход




Рейтинг@Mail.ru Анализ сайта

Томск CATALOG.METKA.RU Top 100: Учеба, образование и науки

Текущее время: 18:07. Часовой пояс GMT +7.

Copyright ©2000 - 2012, vBulletin Solutions, Inc.
SEO by vBSEO
Copyright © 2003-2012, EDUHELPNET ®.
Использование материалов сайта допускается только с обязательным указанием на источник.
Все права на опубликованные на сайте материалы принадлежат их законным владельцам.
Ответственность за содержание рекламных объявлений несет рекламодатель.
Администрация не несет ответственности за содержание веб-сайтов, на которые даются гиперссылки.
Данные пользователей не подлежат разглашению, кроме как соответствующим органам по соответствующему запросу в соответствии с Российским законодательством.
Помощь студентам ТУСУР ТМЦ ДО ТМЦДО ФДО