|
|
|
Канал Игры Мечты: «ИИ» |
|
|
Guest 2075 EGP
Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004 |
|
Гм. Архитектура игрового проекта прежде всего должна строиться для максимизации фана игрока, а не для вывода картинки.
Для вывода картинки архитектура строится для демосцены.
_________________ Трещит земля как пустой орех
Как щепка трещит броня |
|
|
Варсик 545 EGP
Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002 |
|
Zachesa : |
Всё верно, для булевой логики, но если использовать нечёткую логику, тогда всё в корне меняется.
|
Вай-вай-вай... Где меняется? Куда меняется? Все-равно все сведется к if random()>0.5 then так или иначе. Тебе по любому надо наметить насколько алгоритмов и выбират из них, пусть и по нечеткой схеме, а это еще хуже, так как GPU. Если хоть один поток пошел по ветки, то идет весь блок (32 потока), а с твоей нечеткой логикой алгоритмы будут длинные и смысла у такой оптимизации -1.
Zachesa : |
вести обработку данных
|
Вот я про эту обработку и говорю. Если ты возьмешь 32 точки (я сейчас применительно к CDUA 2.2 на основе Tesla S1070), то у тебя будет выигрыш только в том случае, если они все будут идти по одному алгоритму и всегда ветвится в одном направлении. А этого быть не может. Результат будет знаешь какой? Основные ветвления алгоритма будут производится на CPU. Что как-бы символизирует.
Zachesa : |
да и не стоит коверкать мою фамилию пожалуйста
|
А как ее прально по русски писать?
Zachesa : |
Во первых, предлагается использовать весовые коэффициенты, вместо булевых операций. Операции ветвления и задержки выполнения отдельных операций неизбежны, но используя мягкие приоритеты всегда будет чем заполнить вычислительные мощности.
|
Бред. Ты пытаешься подменить задачу. Мы говорим что вообще в программирование есть 3 основных конструкции:
Последовательное выполнение кода, ветвление и цикл, который можно считать сплавом первых 2-х. Так вот, для GPU необходимо что-бы твой код состоял из только последовательного кода. Так как ветвление там реализуется через последовательное выполнения. Ты-же пытаешься повысить уровень абстракции, так как на этом у тебя мало знаний. Так вот, говорю как специалист, хотя и не сильно хороший: Оставь GPU для родственных ему операций. Родтвенная ему операция - это математическая формула многих переменных. Больше он ничего хорошо не делает. Если ты построишь мат. формулу, то это прекрасно выполняется на GPU. Если у тебя будет логика (ЕСЛИ ТО) - это очень плохо работает на GPU.
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Варсик 545 EGP
Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002 |
|
Guest : |
Для вывода картинки архитектура строится для демосцены.
|
Угу, кстати, всем советую: www.scene.org и там farb-rausch. Последнее что у них было - 10 минутный ролик debries весом 177кб, что символизирует. Кстати, очень сильно тормозит на Win7
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Zachesa 151 EGP
Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1415 Откуда: Хабаровск Зарегистрирован: 12.11.2007 |
|
Warstone : |
А как ее прально по русски писать?
|
http://zachesa.moikrug.ru
Warstone : |
Основные ветвления алгоритма будут производится на CPU.
|
Согласен почти с каждым твоим словом, но по чему бы не использовать GPU как сопроцессор для выполнения отдельных цепочек операций?
http://zp3.biz/content/%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC-%D0%BF%D1%87%D1%91%D0%BB согласен, что большинство существующих алгоритмов -- это сплошные циклы и ветвления, но неужели нет возможности их заменить, ведь нервные системы живых существ однозначно работают не на последовательной основе, так как скорость передачи возбуждения через синапсы очень низка!
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины.
Последний раз редактировалось: Zachesa (19:11 21-01-2010), всего редактировалось 2 раз(а) |
|
|
Minx 980 EGP
Рейтинг канала: 6(328) Репутация: 136 Сообщения: 10528 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005 |
|
Warstone : |
Мы говорим что вообще в программирование есть 3 основных конструкции
|
Если рассматривать теорию программирования, то в виде этих 3 конструкций представляется любой алгоритм в императивной парадигме программирования. Но тот же алгоритм можно реализовать с использованием функциональной парадигмы, когда вся программа может быть представлена в виде большой функции многих переменных (без ветвления!). Но вот чтобы переписать даже небольшую программу на функциональный - многим императивникам придется чертыхнутся и потратить куеву тучу времени, и не факт ещё что на выходе получится приемлемый вариант.
P.S. В само ваше обсуждение не вклиниваюсь, а то оно у меня почему-то с принципом GIGO ассоциируется..
_________________ μηδείς αγεωμέτρητος εισίτω |
|
|
Zachesa 151 EGP
Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1415 Откуда: Хабаровск Зарегистрирован: 12.11.2007 |
|
Minx : |
с принципом GIGO ассоциируется
|
у меня реально не хватает знаний и опыта чтобы выразить правильно свою мысль и в итоге постоянно нарываюсь на грабли непонимания
Вот именно, что чистым переписыванием существующих алгоритмов в функциональном стиле задачу не решить. Надо вернуться на уровень абстракций и придумать эти алгоритмы заново. Мне пока не хватает времени, чтоб так глубоко погрузиться в задачу. Всю осень и пол зимы на интернет-магазин потратил, а результат ещё только вырисовывается где там на горизонте. Может всё таки появятся средства и немного времени, чтоб найти нужных мне специалистов и проработать вопрос более досконально, а пока так топчусь на месте, хотя нет движение есть но...
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины. |
|
|
Варсик 545 EGP
Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002 |
|
Minx : |
когда вся программа может быть представлена в виде большой функции многих переменных
|
Дай линк, что-то пока не представляю вообще о чем это. Одна функция и куча переменных... А кто их задает?.. И должны-ли они быть независимы друг от друга, так как если зависимы, то это бред, так как условная зависимость тупо остается за кадром. А если независимы, то чем отличается от императива (как они уходят от ветвлений?)
Zachesa : |
это сплошные циклы
|
Если вычисления внутри цикла не зависимы от предыдущих вычислений внутри этого цикла, то этому прямая дорога на GPU.
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Minx 980 EGP
Рейтинг канала: 6(328) Репутация: 136 Сообщения: 10528 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005 |
|
Warstone : |
Дай линк, что-то пока не представляю вообще о чем это. Одна функция и куча переменных...
|
гугл, функциональная парадигма.
Очень грубо и примитивно говоря, программу
Код: |
if ( a ) x = y; else x = z;
|
можно заменить как
Код: |
x = (y & a) | (z & ~a); // a - это 00..000 или 11..111, ~ - инверсия всех бит
|
соответственно во втором случае ветвления нет.
_________________ μηδείς αγεωμέτρητος εισίτω
Последний раз редактировалось: Minx (20:55 21-01-2010), всего редактировалось 1 раз |
|
|
Варсик 545 EGP
Рейтинг канала: 4(81) Репутация: 117 Сообщения: 4041 Откуда: Москва Зарегистрирован: 22.12.2002 |
|
Minx : |
Очень грубо и примитивно говоря,
|
Ну примерно понял... Правдо осталось узнать, как там на девайсе-то он это вычисляет. Если опять-таки криво, то...
_________________ WARNING: By reading this post you accept that this post is genius. |
|
|
Guest 2075 EGP
Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004 |
|
Побитовые операции скорее всего нормально. Совершенно линейная процедура со сбором дикой кучи данных, да ещё и хорошо кеширующихся из-за повторов...
_________________ Трещит земля как пустой орех
Как щепка трещит броня |
|
|
geneer -67 EGP
Рейтинг канала: 1(3) Репутация: -20 Сообщения: 127 Заблокирован
Зарегистрирован: 12.01.2010 |
|
Ричард Докинз предлагал создать виртуальную среду в которой будут эволюционировать программы, по законам похожим на реальный мир. В принципе можно даже теоретически и до ИИ хорошего дойти. Сам он это реализовать не мог, но предложил это сделать профессионалам. Правда я сейчас не знаю как у них там дела. Пожалуй сделать имитацию кораблей даже легче чем живых организмов и позволить им эволюционировать сражаясь друг с другом. Сделать например продуцентов, добывающих ресурсы на астероидов. А также консументов, охотящихся на них. Просто в природе интеллект развивается от простого к сложному. Можно применить это и к виртуальному миру, создав таких вот киберберсеркеров.
|
|
|
Minx 980 EGP
Рейтинг канала: 6(328) Репутация: 136 Сообщения: 10528 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005 |
|
geneer : |
Ричард Докинз предлагал создать виртуальную среду в которой будут эволюционировать программы, по законам похожим на реальный мир.
|
Выращивание AI как ребенка было предложено более 50 лет назад.
Поздравляю с изобретением велосипеда.
_________________ μηδείς αγεωμέτρητος εισίτω
Последний раз редактировалось: Minx (00:37 09-02-2010), всего редактировалось 1 раз |
|
|
Guest 2075 EGP
Рейтинг канала: 5(167) Репутация: 376 Сообщения: 27975 Откуда: Моск. Зарегистрирован: 12.10.2004 |
|
Minx : |
Выращивание AI как ребенка было предложено более 50 лет назад.
Поздравляю с изобретением велосипеда.
|
Игр на обучающемся ИИ тоже сделано немало. Но если заставить анализатор анализировать игрока, да ещё и "зная" полный набор правил игры плюс имея серьёзное превосходство в скорости реакции и удобстве управления - играть против такого ИИ будет мягко говоря неинтересно.
_________________ Трещит земля как пустой орех
Как щепка трещит броня |
|
|
geneer -67 EGP
Рейтинг канала: 1(3) Репутация: -20 Сообщения: 127 Заблокирован
Зарегистрирован: 12.01.2010 |
|
Minx : |
Выращивание AI как ребенка было предложено более 50 лет назад.
Поздравляю с изобретением велосипеда.
|
Я и не говорил что это новый концепт. Тем более что тут не выращивание AI как ребенка, а просто эволюция примитивных программ. То есть саморазвитие, без посторонней помощи.
Guest : |
Но если заставить анализатор анализировать игрока, да ещё и "зная" полный набор правил игры плюс имея серьёзное превосходство в скорости реакции и удобстве управления
|
Программа будет анализировать не игрока, а другую программу.
|
|
|
Jerry Rezet 581 EGP
Рейтинг канала: 5(113) Репутация: 86 Сообщения: 3365 Откуда: Санкт-Петербург. Зарегистрирован: 01.04.2005 |
|
geneer : |
Программа будет анализировать не игрока, а другую программу.
|
И нафег это нуна? Если в конечном итоге всё должно служить человеку, а не замещать его в процессе эволюции?
_________________ - Вы не представляете, как вам повезло, что я здесь. Вы об этом еще пожалеете. [c] |
|
|
geneer -67 EGP
Рейтинг канала: 1(3) Репутация: -20 Сообщения: 127 Заблокирован
Зарегистрирован: 12.01.2010 |
|
Jerry Rezet : |
И нафег это нуна? Если в конечном итоге всё должно служить человеку, а не замещать его в процессе эволюции?
|
Да не беспокойтесь вы так, Джулиан Бреннан вас не заменит.
Во-первых это просто интересно, т.к. является еще одним доказательств развития от простого к сложному.
Во-вторых такого проэволюционировавшего противника можно применять в играх.
|
|
|
Minx 980 EGP
Рейтинг канала: 6(328) Репутация: 136 Сообщения: 10528 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005 |
|
geneer : |
Во-первых это просто интересно
|
Enjoy up to 24 hours of Two Bots Talking over a one month period for only $9.99.
P.S. С велосипедом как одним из методов я согласен.
_________________ μηδείς αγεωμέτρητος εισίτω
Последний раз редактировалось: Minx (03:43 12-02-2010), всего редактировалось 2 раз(а) |
|
|
Minx 980 EGP
Рейтинг канала: 6(328) Репутация: 136 Сообщения: 10528 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005 |
|
К вопросу об обсужденном AI в соседних темах.
В контексте всего что хотелось бы сказать.
Внутренняя организация AI может быть разной. Принципиально разной. И большой вопрос в том, насколько один вариант отличается от другого в плане:
* затрат на сборку, отладку, тестирование, допиливание, сопровождения такого AI;
* эффективности данного AI в конкретной рассматриваемой среде (игре, решении задачи и пр.);
* вообще в применимости AI в данной конкретной задаче (см. задачу про вероятностную логику - её сложно решить аристотелевским методом);
* возможности использования AI на имеющихся ресурсах - быстродействии, памяти, ширины и времени отклика средств коммуникации, ..;
В каком-то случае будет достаточно поведения:
1. Если вблизи есть враг, то по нему стрелять.
2. Если HP < 20%, и по нам стреляют, то надо убегать.
А в каком-то случае нужно сложное моделирование окружающего мира с логическим разбором возможных ситуаций. И также в этом случае механизм может быть принципиально разным:
Аристотелевская логика : |
Известно, что только корабли класса А могут развивать скорость 200 км/c. Также известно, что у любого корабля класса А есть ракетное вооружение.
Мы наблюдаем корабль Х, летящий со скоростью 250 км/c. Следовательно, это корабль класса А и у него есть на борту ракетное вооружение.
|
Модальная логика : |
Известно, что:
"при температуре более 0'C лед должен расплавится";
"завтра вероятно будет положительная температура";
отсюда можно сделать вывод, что
"завтра вероятно лед расплавится";
|
Вероятностная логика : |
Вы летели на самолете, и тот разбился в пустыне. остались в живых только вы.
у вас есть 2 варианта:
1) либо берете 10 л воды с собой и идете со скоростью 5 км/ч,
2) либо берете 2 л воды и идете со скоростью 10 км/ч.
Воды нужно 1 л на 1 час.
С вероятностью 20% за каждый час будет песчаная буря (летальный исход) - т.к. по прогнозам синоптиков так происходит и все об этом знают.
Также вы знаете, что все поселки расположены на расстоянии 50 км друг от друга, и сл-но вы доберетесь 100% если взять 10 л, и 40% если взять 2 л.
Какой из вариантов выбрать?
Вероятностная логика:
1-й вариант - (0.8^2)*0.4 = 0.256
2-й вариант - (0.8^5) = 0,32768
|
Временная логика : |
Известно, что перед падением бомб в небе появляются самолеты. Также известно, что после падения бомб идут взрывы. Можно сделать вывод, что после появления самолетов будут взрывы.
|
Плюс в AI-системе может использоваться несколько вариантов логик. Например, для покера можно использовать вероятностную логику для подсчета вариантов развития событий, а для моделирования поведения игроков - модальную, временную или какую-то другую логику.
В заключении повторюсь. Говорить о каком-то универсальном AI, а также AI без рассмотрения условий его существования - не имеет смысла. Можно рассмотреть какой-то вариант AI, увидеть его плюсы и минусы, собрать велосипед на будущее - это да. Но не более.
_________________ μηδείς αγεωμέτρητος εισίτω |
|
|
Zachesa 151 EGP
Рейтинг канала: 4(95) Репутация: 13 Сообщения: 1415 Откуда: Хабаровск Зарегистрирован: 12.11.2007 |
|
Логика и разнообразные численные методы в математике существуют сами по себе. Учёные такие прекрасные ребята, они настолько преданы науке, что создавать различные задачи и методы их решения могут пачками. Попробовал сделать каталог различных алгоритмов, разбивая их по задачам. Пока это начинание в глубоко зачаточном состоянии, так как большинство из них очень трудно классифицировать по полезности, в применении к игровому ИИ, которые должен симулировать поведение НПС.
В покере и в других таких играх, с жёстко очерченным кругом задач, когда набор правил можно формализовать, искусственный интеллект не нужен, но могут применяться отдельные алгоритмы типичные для систем ИИ. То есть хочу сказать, что часто простую игровую логику называют игровым ИИ, но это скорее всего подмена понятий. Такое заблуждение прослеживается во множестве вполне серьёзных публикаций в интернете на эту тему, когда в одну кучу мешают все задачи, где стоит вопрос выбора действий.
Всё-таки, когда я говорю об игровом ИИ, то имею прежде всего не наборы алгоритмов, на разнообразные простые (по набору правил) игрушки, а именно симуляцию поведения персонажей в сложных играх, пусть это будет стратегия, РПГ или космосим -- это уже не так важно. В таких играх главное это то, что нельзя чётко обрисовать круг задач и методов, необходимых для их решения, так как он изначально очень широк и может изменяться по мере того, как идёт работа над таким проектом. Поэтому и возникает желание сделать универсальный игровой ИИ, который будет сам подбирать методы для решения возникающих перед ним задач.
_________________ Язык Образов, для ситуационного моделирования, программирования и как язык мысли, думающей машины.
Последний раз редактировалось: Zachesa (05:06 16-08-2010), всего редактировалось 2 раз(а) |
|
|
Minx 980 EGP
Рейтинг канала: 6(328) Репутация: 136 Сообщения: 10528 Откуда: Gomel, Belarus Зарегистрирован: 19.11.2005 |
|
Zachesa : |
То есть хочу сказать, что часто простую игровую логику называют игровым ИИ, но это скорее всего подмена понятий.
|
Это и есть AI - целевое поведение различных активных объектов в игре. И игроку должно быть все равно, как это поведение реализовано.
И соответственно, тут рассматривается игровой AI. А не AI в широком смысле.
Что касается изобретения велосипеда вида GPS, то ящитаю, что это не имеет смысла.
_________________ μηδείς αγεωμέτρητος εισίτω |
|
|
|
|
|
Канал Игры Мечты: «ИИ» |
|