|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.05.2012, 16:23 | #11 |
Форумчанин
Регистрация: 23.08.2011
Сообщений: 171
|
Интересно, интересно. Вы это на делфи пишите?
Добавьте в последствии, системы гнезд для существ, различные эвалюционные способности, типо маскировки, защитный покров и т.д. физические качества, типо скорости передвижения и т.д.
Каждый день узнаю новое...
|
21.05.2012, 03:20 | #12 |
Форумчанин
Регистрация: 16.10.2008
Сообщений: 205
|
В дальнейшем все это конечно планируется сделать. Данный вариант предназначался для проверки некоторых идей, но и по нему можно сделать кое какие выводы:
Главный из них это то что идея была правильной, т.е. все развивается и эволюционирует, и это происходит даже не так медленно как я предполагал. Живность довольно быстро учится обходить черные области, затем понимает что нужно искать зеленые точки, и что размножаться выгодней половым путем. Еще интересная особенность обнаружилась когда одного из травоядных хищники загнали на черную область, в этот момент он наплодил кучу потомков и помер. Что то подобное есть у простейших когда попадают в неблагоприятные условия, они выбрасывают кучу спор и погибают. Так что у живности появляется довольно сложное поведение, за которым иногда очень интересно наблюдать. В дальнейшем конечно хотелось бы разнообразить мир, сделать разделение видов на подвиды увеличить кол-ва нейронов у животных и много чего еще. Но обнаружилась и проблема. Даже в данном варианте при количестве животных более 1000, вычисление их НС занимает столько времени что их малейшая заметная эволюция будет идти недели, и говорить про увеличение НС или усложнение мира и вовсе не приходится. В общем нужно думать над оптимизацией вычислений. |
21.05.2012, 10:33 | #13 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
А на чём у Вас вычисления ?
если у Вас есть дробные вычисления - выкиньте и замените на целые, уберите все операции деления с округлением и замените на div или вообще shr ( для деления на 2 , равно и операции умножения на 2 можно заменить на shl) Просмотрите все циклы и выкиньте то, что не изменяется в цикле за проход цикла с введением локальной переменной под хранение нужного значения, введение локальных переменных также задействуйте для многих операций взятия подэлементов структур или массивов (обращение к локальной переменной быстрее чем к структурам/массивам) можете использовать inline подпрограммы (для дельфи2009+) либо кое-где свести к минимуму обращение через подпрограммы, особенно в циклах, чтобы уменьшить такты процессора на джампы выкиньте всю работу со строками , если сильно надо, можно заменить string на тип shortstring или вообще на массив char выкиньте процедуры отрисовки основанные на canvas.pixels и замените на bitmap.scanline (примеры я давал в теме уроки по созданию игр для новичков, гляньте поиском мои посты) Постарайтесь поменьше выделять/перераспределять память - setlength или create-free или т.п. Ну есть и ещё методы для оптимайза, но без кода так вот чётко не скажешь на что лучше сделать упор. Последний раз редактировалось phomm; 21.05.2012 в 10:35. |
21.05.2012, 14:20 | #14 |
Форумчанин
Регистрация: 23.08.2011
Сообщений: 171
|
Когда новая версия?) Жду не дождусь
Каждый день узнаю новое...
|
22.05.2012, 09:55 | #15 |
Форумчанин
Регистрация: 16.10.2008
Сообщений: 205
|
Anton911, новая версия выйдет только когда будет решена проблема описанная мной в предыдущем посте.
phomm, спасибо за советы, но большую их часть я знал и надо что то иное попробовать. И вот решил упростить структуру НС. Был классический четырехслойный перцептерон с обратной связью. На рисунке его сокращенная схема. Считал его так: Код:
Это полносвязная НС, она является более универсальной чем остальные и может их всех повторить. Считал так: Код:
Теперь одних животных оставлю со старой структурой НС, других с новой. Посмотрим кто будет быстрее развиваться. Последний раз редактировалось gusluk; 22.05.2012 в 09:57. |
24.05.2012, 03:03 | #16 |
Форумчанин
Регистрация: 16.10.2008
Сообщений: 205
|
Судя по развитию живности за последние два дня, второй вариант структуры НС как минимум не уступает первому, а может даже и превосходит его. Но при одинаковом количестве нейронов он дает выигрышный в производительности всего ~20%. Так что остается тока разбивать все это дело на потоки. Тут мне видится два варианта:
1. три потока на животных (каждому виду свой) и один на вывод графики. 2. каждому животному свой поток, плюс поток на графику. Думаю первый вариант лучше. |
24.05.2012, 13:31 | #17 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Потоки на 1процессорных машинах не дадут ощутимого ускорения, разве что графика будет работать с видео (OGL/DX), а не процессором (GDI), а на 2процессорных дадут 20-30% выигрыша имхо.
3-4 процессорные машины всё же пока редковаты, тем более их обладателям до таких эмуляций обычно нет дела. Может немного борзо/нагло, но дайте код, я попробую поотимайзить на свой манер и скину обратно, не обещаю конечно что будет летать, но может что и выйдет )) |
24.05.2012, 15:58 | #18 |
Форумчанин
Регистрация: 16.10.2008
Сообщений: 205
|
По моим замерам без вывода графики около 90% времени занимают расчеты НС, и в виду того что это всего лишь тестовый вариант, поэтому оптимизировать тут имеет смысл только их. Как я считаю НС я приводил в предыдущих постах. Ну и как я уже писал, использовать буду полносвязную сеть, а не перцептрон.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Игра жизнь | Fi11eR | Общие вопросы C/C++ | 8 | 22.05.2014 16:52 |
Клеточный автомат (Игра Жизнь) в Delphi | nitroes | Фриланс | 4 | 12.03.2012 13:11 |
Возможна ли жизнь с девушкой, будущей женой без детей всю жизнь? + Ипотечная тема :) | Kasper1 | Свободное общение | 68 | 11.01.2012 00:54 |
Игра Жизнь | VovanZ | Софт | 14 | 02.02.2010 16:46 |