Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Эволюция в виртуальной машине

Автор: Crazy_Shrike
Дата сообщения: 07.05.2004 10:55
2 Unconnected:

Дык, они ж приватные... Инкапсуляция, все такое... Нехорошо... Учили так...

Прокомментировать... В общем, это приватные переменные и методы.

bool hromosoma[100]; - собственно, хромосома... булев массив...

остальные переменные - или дублируют гены, про что мы не раз говорили, или такие, которые нет смысла загонять в хромосому, типа возраста.

Вот. А эти методы..

void SetBinary(int,int,int);
int GetDecimal(int,int);
void VarInitialization(); //hromosoma->vars;
void HromosomaInitialization(); //vars->hromosoma;

Я уже описывал. Зайдите на сайт, я уже писал, там обо всем классе подробно расписано, на страниче "Описание" www.e-volution.freehost.kiev.ua


2 Artsh:

Попробую, может, так...

Объявление динамического массива объектов Essence;
(при объявлении для каждого объекта выполняется конструктор)
Объявление массива 100х100 объектов Cell;
(аналогично, конструктор)
Начало такта - вызов главной функции;
Цикл по длине массива Essence:
Работа с i - объектом (добавление возраста, выполнение шага, и т.д. и т.п.)...
Конец такта.

Все основные действия происходят в цикле при работе с объектом. Т.е. за один такт обрабатываются все "нужды" каждого объекта. Если выясняется, что объект должен умереть, идет индексация массива, и т.д. куча всяких заморочек. Кода уже немерянно...

Автор: UncoNNecteD
Дата сообщения: 07.05.2004 13:11
Crazy_Shrike
Сайт не грузится.
Автор: Crazy_Shrike
Дата сообщения: 07.05.2004 13:42
Странно, я пробовал ссылку... Да и знакомые уже заходили...
Автор: beeos
Дата сообщения: 07.05.2004 16:41
Не грузится, факт.
Автор: ArtSh
Дата сообщения: 08.05.2004 12:39
Crazy_Shrike

Цитата:
Начало такта - вызов главной функции;
Цикл по длине массива Essence:
Работа с i - объектом (добавление возраста, выполнение шага, и т.д. и т.п.)...
Конец такта.

Опиши пожалуйста по подробнее.


А сайт не негрузится точно
Автор: Crazy_Shrike
Дата сообщения: 11.05.2004 09:14
Не знаю что такое с сайтом, у нескольких моих киевских знакомых проблем не было... Очень странно... Попробую захостится на другом сервере - напишу.

... Тело очень маленькое... Пока я, в основном, занимался реализацией методов, в цикле выполняется такое:

Цикл по длине массива
{
добавление к возрасту единицы для i - объекта массива - Essence[i].IncAge();
проверка, не пора ли объекту умирать. (age>lifetime)
если пора, идет индексация массива - смещение элементов, начиная с i+1;
передача i - объекту информации о соседних клетках. Он принимает ешение о
напралении хода и ходит, если захочет.
передача i - объекту информации о текущей клетке и выполнение соответсвующих
инструкций относительно увеличения (уменьшения) атрибутов (массы, энергии,...)
}

В общем-то, по существу, все. Еще вне цикла есть немного всяких служебных вызовов функций, типа подсчета количества организмов по половому признаку,... , вывод информации в форму.

Из вас кто-то параллельно программирует? А то у меня такое впечатление, что я сижу перед приемной комиссией...
Автор: UncoNNecteD
Дата сообщения: 11.05.2004 10:19
Не перед комиссией, а перед группой поддержки

1. Как работает IncAge ? Учитывает ли условия обитания в ячейке?
2. Как принимается решение о перемещении?
3. Как ты планируешь побороть проблему неодновременности действий объектов? То есть если например один хочет другого съесть, но не может - так как тот имеет меньший индекс i и уходит из клетки быстрее чем тот его съедает?
Автор: Crazy_Shrike
Дата сообщения: 11.05.2004 10:49
IncAge() выполняется без условий каждый такт. Это временная стрела мира и ни от чего не должна зависить.

Решение о перемещении принимается на основе значения функции ценности для каждого направления. Пока ничего лучше не придумал, как F=(mass+energy)/время регенерации ресурсов. (атрибуты клетки)

3. Блин. Проблема. Не знаю. Давайте думать...


Автор: UncoNNecteD
Дата сообщения: 11.05.2004 11:16
Я имею ввиду что к старости (AGE) существа должно прибавлятся не фиксированное 1, а величина зависящая от качества жизни существа в этот такт.


Цитата:
F=(mass+energy)/время регенерации ресурсов. (атрибуты клетки)

откуда оно (существо) знает время регенерации? это надо гены гениальности вводить
Автор: Crazy_Shrike
Дата сообщения: 11.05.2004 16:18
Имхо, время есть время... Просто можно менять время жизни.

Время регенерации... Хм... Я думал, что объект может получить всю информацию о клетке... Даже не знаю.... Думаю.
Автор: UncoNNecteD
Дата сообщения: 12.05.2004 11:06
Вот ты живешь - все ли ты знаешь о окружающем мире?
Это ведь тоже эволюция - эволюция знаний...
Думаю объект должен иметь некий ген развития мозга и от него зависила точность определения параметров клетки.
Должны же они ошибаться

А по поводe времени - мне кажется неправильно так - определять сколько проживет существо. Должно быть что то типа жизненной силы, от которой каждый такт отнимается некое число определенное в зависимости от условий проживания этого такта.
Автор: Crazy_Shrike
Дата сообщения: 12.05.2004 13:19
Точность определения параметров - идея хорошая. Настолько хорошая, что я ее реализую.
Время жизни. Не нравится мне. Не буду. Не хочу.
Автор: UncoNNecteD
Дата сообщения: 13.05.2004 10:30
Получается что голодающее существо проживет то время сколько положено... это плохо для эволюции...
Пример:
Существо голодает по причине того что не может точно определить какая ячейка наиболее приемлема для жизни - то есть существо тупое, однако оно не умирает и дает столько же потомства сколько умное - вот и конец твоей эволюции.
Эволюция - это процесс который строится на очень правильной жесткой логике природы и устройства мира в целом.
Автор: Crazy_Shrike
Дата сообщения: 13.05.2004 13:23
Если оно будет голодать, время жизни уменьшится, оно умрет раньше и оставит меньше потомков.
А если подражать природе, то ум стал решающим для выживания фактором только в одном случае. Почему, например, птица не может обзавестить большими мозгами? Вес лишний, да и рефлексов вполне хватает, ей некогда думать. Зачем большой мозг муравью? Мозг - это муравейник, его единица - муравей - ничего не решает. Несмотря на то, что есть сотни тысяч видов животных, эволюция в сторону увеличения интеллекта никогда не идет, а если идет, то останавливается на минимально необходимом уровне.
Эволюция - это жесткий отбор без компромиссов, но все же с некоторыми очень редкими случайностями.
Автор: UncoNNecteD
Дата сообщения: 13.05.2004 14:40

Цитата:
Если оно будет голодать, время жизни уменьшится, оно умрет раньше и оставит меньше потомков.

Как ты это учитываешь? Из описанного алгоритма я не понял.


Цитата:
Эволюция - это жесткий отбор без компромиссов, но все же с некоторыми очень редкими случайностями.

Все в ней логично, нет тут случайностей... четкий баланс (на макро уровне по крайней мере).
Автор: Crazy_Shrike
Дата сообщения: 13.05.2004 15:16

Цитата:
Все в ней логично, нет тут случайностей... четкий баланс (на макро уровне по крайней мере).


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

А вот слова "в ней все логично" меня чуть не довели до инфаркта и если б не скобки, он бы случился. Не "по крайней мере", а ТОЛЬКО. И то это не факт.


Цитата:
Как ты это учитываешь? Из описанного алгоритма я не понял.


Дык, ясно.. Я ж реализацию методов и функций не публиковал...

Эх... Че-то нас мало осталось. Буквально, двое...
Автор: beeos
Дата сообщения: 13.05.2004 15:20
Неправда, друзья... Нас больше, просто многие пока имеют возможность только следить за развитием событий...
Автор: Crazy_Shrike
Дата сообщения: 13.05.2004 16:30
beeos, наконец-то!

Что ж так? Хоть пару слов...
Автор: UncoNNecteD
Дата сообщения: 14.05.2004 11:14
Crazy_Shrike
Расскажи принцип, код не важен. С точки зрения программирования - то что мы делаем - очень простая задача. Гораздо важнее смысловой контент.
Автор: Crazy_Shrike
Дата сообщения: 14.05.2004 11:47
С виду - вроде простая. А вот я уже две недели не могу двумерный массив в функцию передать! Скоро лоб об монитор расшибу.

А про что кокретно рассказать?

Добавлено
Я застрял на такой, извините, фигне и прям жить не хочется!
Автор: UncoNNecteD
Дата сообщения: 14.05.2004 13:57
Как учитываешь влияние условий обитания на продолжительность жизни.

Массив определи как отдельный тип и передавай, должно работать.
Автор: Crazy_Shrike
Дата сообщения: 14.05.2004 15:05
Гм... А поподробнее?

Добавлено
Картинка как подходит к сообщению...
Автор: UncoNNecteD
Дата сообщения: 16.05.2004 23:06
type
MyArray = array of byte;




function Some(var param:MyArray) {}

Вот так у меня в Дельфи все работает. Передаваемый параметр есстественно тоже должен быть типа MyArray.


Так как ты учитываешь условия обитания?
Автор: UncoNNecteD
Дата сообщения: 24.05.2004 11:18
Спасаю тему
Crazy_Shrike
Ты там запрограммился или сессия просто?
Автор: Crazy_Shrike
Дата сообщения: 24.05.2004 12:02
Извините, друзья... диплом на носу. Сейчас не программирую... Но через три недели займусь вплотную, так как времени будет море...
Автор: Crazy_Shrike
Дата сообщения: 22.06.2004 15:04
Все, теперь можна продолжать...
Кстати, я в дипломе использовал генетический алгоритм, комиссию порвало.
Автор: UncoNNecteD
Дата сообщения: 22.06.2004 21:24
Crazy_Shrike
Молоток!
Так что насчет условий обитания?
Автор: Crazy_Shrike
Дата сообщения: 07.07.2004 16:56
Пока я тут долбаюсь с проблемами кодирования появились некоторые мысли...
Как бы заложить в хромосому не только атрибуты, но еще и какой-то опыт. Например, объект в течение жизни мало двигался, но имел неплохую выживаемость, почему бы потомку не оставить иформацию типа "будешь меньше двигаться - больше проживешь"... или "будешь много кушать - скоро состаришся"... Надо бы развить...
Автор: beeos
Дата сообщения: 07.07.2004 17:52
Тогда существо должно обладать памятью обо всем, что с ним происходит, да еще и анализировать свое состояние... Сложно, но можно... А нужно ли? Условились упростить модель, разве нет?
Автор: UncoNNecteD
Дата сообщения: 08.07.2004 02:22
Crazy_Shrike
Ты не понимаешь принципа эволюции. Если существо двигалось медленно и при этом жило долго - оно родит много потомков со схожими хромосомами. То есть больше медленных существ. В этом суть. Никакой памяти бытьне должно. Выживает сильнейший, все просто, в этом мудрость природы и времени.

Страницы: 123456

Предыдущая тема: C++: Построчное чтение файла в Builder


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.