GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.2 (2)<< < Пред.   Поиск:  
 Автор Тема: На: Второй уровень - Сознание - Действия в команде
daner
Сообщений: 4593
На: Второй уровень - Сознание - Действия в команде
Добавлено: 23 дек 13 11:58
>>>>>>> Vpolevoj

как вы собираетесь кодировать (описывать) поведение обучаемого агента?
и как будет выглядеть сам алгоритм обучения?

относительно поиска:
если не ошибаюсь, карта не известна.
тогда при поиске главной задачей является скорейшее открытие всей площади (тем более, что вам не надо посетить все ячейки, бойцы, если я правильно понял, могут видеть на расстоянии).
на сколько мне известно, нет оптимального алгоритма решения этой задачи.
поэтому, я бы использовал эвристику типа : как [далеко идти]+[длинна фронтира] (фронтир - это рубеж открытой и скрытой карты).
ну можно еще это дело взвесить (т.е. умножить на коэффициенты важности)

спираль хороша при сканировании открытых пространств. зигзаг нужен, если необходимо в каждой клетки побывать, а карта заранее не известна. Если карта известна, и нужно в каждую клетку, то лучше использовать алгоритм на основе минимального покрывающего дерева, позволит уменьшить повторные посещения.
Для нескольких роботов есть еще такой алгоритм : MRBUG. он позволяет найти путь (т.е. и сам объект найти) на неизвестной карте, за время сопоставимое с поиском пути, на известной карте. Но он весьма теоретический, в нем локализация должна быть ого-го.
[Ответ][Цитата]
Vpolevoj
Сообщений: 1408
На: Второй уровень - Сознание - Действия в команде
Добавлено: 23 дек 13 22:49
Изменено: 23 дек 13 23:20
Цитата:
Автор: daner
как вы собираетесь кодировать (описывать) поведение обучаемого агента?
и как будет выглядеть сам алгоритм обучения?

относительно поиска...

Пока (на этом - начальном - этапе) я думаю реализовать нечто подобное механизму Подсознания. Поскольку данный мой проект называется Сознание, и призван моделировать именно этот тип мышления, то он просто обязан базироваться на механизмах более низкого уровня - Инстинктах (жестко заложенных алгоритмах) и Подсознании, которое я воспринимаю как индивидуальный опыт взаимодействия с окружающей действительностью.

То есть, каждый юнит, по моим представлениям, должен обладать набором жестко заложенных в него программ - алгоритмов, которые подобны Инстинктам, и кроме этого он должен накопить достаточно богатый опыт поведения в стандартных ситуациях, с тем, чтобы знать, или хотя бы предполагать, их возможный исход, и следовательно мог бы направленно стремиться к возникновению подобных ситуаций (если их исход для него положительный), либо избегать их (если их исход для него неблагоприятный), а это, на мой взгляд, и есть работа механизма Подсознания.

И разумеется, я планирую замоделировать и работу Сознания тоже, в частности, в области осуществления взаимодействия между различными юнитами. Но это - в данный момент не актуально, поскольку не решены еще и все промежуточные задачи. Для начала мне нужно посмотреть, как будет работать и проявлять себя основа - Инстинкты плюс Подсознание. А там уже, бог даст, дойдет дело и до Сознания - механизмов согласования и взаимодействия между отдельными бойцами внутри отряда.

Алгоритм обучения на базе Подсознания довольно прост, и я его описывал в своей теме про поведение Лягушки. Он строится на распределении весовых коэффициентов между различными стимулами или действиями. Поначалу применение тех или иных действий в ответ на какой-нибудь стимул равновероятно, но по мере накопления опыта, вероятность той или иной реакции смещается, и зависит от успешности или неуспешности всех предыдущих действий. Отрицательные веса накапливаются быстрее чем положительные, и поэтому Подсознание старается скорее избегать плохих ситуаций, чем стремиться к хорошим, но все же свои максимумы, которые будут соответствовать наиболее благоприятным для этого юнита ситуациям, у него тоже сформируются, так что своего рода ОБУЧЕНИЕ произойдет, причем ИНДИВИДУАЛЬНОЕ обучение, и во многом случайное и потому УНИКАЛЬНОЕ, то есть неповторимое, поскольку оно будет зависеть от многих случайных факторов.

Вся сложность реализации подобных алгоритмов заключается в подборе базовых (начальных, шаблонных) стимулов/действий, так как для обучения их должно быть относительно много, чтобы иметь выбор, и было бы чему обучаться - подбирать конкретные действия к конкретным стимулам, и тем самым приспосабливаться к текущим реальным условиям. Причем желательно, чтобы эти шаблонные стимулы/действия образовывали бы непрерывный спектр - один диапазон, поскольку именно на одном диапазоне различных значений ОДНОГО И ТОГО ЖЕ расставляет свои весовые коэффициенты Подсознание. В этом как раз и заключается в большинстве случаев основная трудность реализации этого механизма обучения.

И еще одним немаловажным фактором при реализации данного алгоритма обучения является подбор критериев успешности/неуспешности. Что считать успехом, а что - поражением? Насколько должны сдвигаться весовые коэффициенты, если успех был достигнут не полностью, если он был временный или недостаточный? И т.д.

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

Но... поскольку у нас их под рукой нет, то приходится выкручиваться и обходиться тем, что есть.

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

Но что я хочу сделать и обязательно сделаю, так это - выбор стратегии.
Поскольку возможных стратегий не так уж и много, и все они укладываются в один непрерывный диапазон: от предельно жесткой агрессии, вплоть до полного избегания любого столкновения, - то привязать к этому диапазону возможность менять на нём весовые коэффициенты, что называется, сам бог велел.

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

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

Что касается алгоритмов поиска, то я уже придумал, как я буду это делать "агрессивным" бойцом.

Поскольку дальность обзора у большинства моих бойцов - 6 клеток (и лишь у Командира - 8, и у Разведчика - 10), то широта зоны охвата взглядом с одной точки составляет примерно 12-13 клеток. А поскольку все поле боя у меня 30х30, то мне показалось удобным разделить его на четыре части - четверти - по 15х15 клеток, и сделать алгоритм поиска жертвы по этим четвертям. Агрессор заходит в какую-нибудь четверть и просто небольшим количеством шагов осматривает (то есть, высвечивает взглядом) все клетки данной четверти. Когда все клетки этой четверти будут осмотрены, значит поиск в ней завершен и можно переходить в следующую четверть. И так - до бесконечности - до тех пор, пока жертва не будет обнаружена. Порядок чередования осматриваемых четвертей можно сделать случайным, можно - по кругу, а можно - крест-накрест, и тогда убежать или спрятаться в какой-нибудь четверти станет практически невозможно - все равно, рано или поздно, но пути агрессора и жертвы пересекутся.

Кстати, осматривая местность в поисках жертвы, боец тоже постоянно попадает в стандартные ситуации, и для этой задачи тоже можно выработать критерии успешности/неуспешности, так что и тут, на мой взгляд, можно найти применение алгоритмам Подсознания - пусть тоже обучается искать свою жертву наиболее эффективным способом. (Но на самом деле, я этого не хочу делать, а сказал просто так - для иллюстрации применимости принципа Подсознания: агрессор у меня будет "тупой", и не будет обучаться - незачем ему, а вот боец - тот пусть учится, в том числе и тому, как противостоять этому "тупому" агрессору.)
[Ответ][Цитата]
daner
Сообщений: 4593
На: Второй уровень - Сознание - Действия в команде
Добавлено: 24 дек 13 0:30
как всегда изобретаете колеса.
ну что же, успешных граблей вам.
к сожалению обучение с подкреплением без состояний с весьма туманными рассуждениями о наградах за действие (это то что вы описали таким огромным кол-вом букв), вряд ли приведут к чему-то полезному. И это еще имеет право на жизнь (с бооольшой натяжкой) пока речь идет о боях против бойцов с примитивными стратегиями, которые можно четко классифицировать и которые не зависят от каких-либо дополнительных факторов. Как только эти условия перестанут соблюдаться (они перестанут это делать очень скоро, так как распознавание поведения противника весьма не тривиальная задача которую будет очень сложно решить, тем более если стратегия у него будет не линейная), ваш алгоритм, даже теоретически перестанет работать.
Не думайте, что если вы бросите в кастрюлю побольше всяких продуктов, то в конце получите нечто съедобное.
вы зря не до-экспериментировали с вашей лягушкой, это было проще и уже тогда вы увидели бы ограничения вашего подхода.
[Ответ][Цитата]
Vpolevoj
Сообщений: 1408
На: Второй уровень - Сознание - Действия в команде
Добавлено: 24 дек 13 2:01
Изменено: 24 дек 13 5:26
Цитата:
Автор: daner
вы зря не до-экспериментировали с вашей лягушкой, это было проще и уже тогда вы увидели бы ограничения вашего подхода.

Есть такое дело.
Недополученные в ходе одного эксперимента данные нельзя использовать как исходные в другом.

Но "Лягушка" у меня продвигается очень медленно (я время от времени к ней возвращаюсь и делаю помаленьку в программе то-сё, но перелома так и не наступает).

Но и вы тоже валите всё в одну кучу.

Подсознание позволяет адаптироваться к достаточно стабильным (во всяком случае, повторяемым) условиям внешней среды, именно этим оно нам и дорого. Когда имеется набор возможных действий, но заранее не известно, на что именно и как следует реагировать, то личный индивидуальный опыт может в этом помочь. Если, конечно, есть возможность экспериментировать достаточно долго (а это и означает, что условия стабильные или повторяются).

Приспособиться к "умным" противникам, или когда условия меняются случайным образом, с помощью Подсознания нельзя - оно для этого не предназначено. В какой-то мере помочь в этой проблеме может уже Сознание, то есть, Логика и Планирование. Но окончательно взаимодействовать на уровне Субъект-Субъект позволяет лишь Сверхсознание, или Разум, который пока есть только у Человека. Поэтому, пока мы не сумеем сделать Искусственный Разум, ни о каких "предсказаниях поведения противника" речи быть не может. Ни Подсознание, ни даже Сознание, с такой задачей не справятся. Нет у них для этого соответствующих механизмов.

Вот, смотрите.
В проекте "Робот" я моделирую Пространство.
В проекте "Отряд" я моделирую не только Пространство, но и Команду - набор юнитов с различной специализацией (функциональными возможностями), и получается что-то вроде виртуального организма (а любая социальная группа - это и есть своеобразный организм, с набором распределенных между всеми участниками этой группы функций).

А то, о чем вы говорите - "предсказание (или распознавание) поведения противника" - подразумевает наличие МОДЕЛИ ПРОТИВНИКА как СУБЪЕКТА, и работа уже с этой моделью, а не с моделью пространства или собственного отряда. Потому что, все входные поступающие данные, и все тестовые (экспериментальные) посылки (разведданные и провокации) - все они - будут направлены в этом случае на ПРОВЕРКУ и УТОЧНЕНИЕ этой МОДЕЛИ, то есть, на определение стиля поведения противника, выявление его субъективных характеристик. И это - совсем другая модель, и совсем другие действия. Во всяком случае, совсем не те, что подразумеваются при бое отряд-на-отряд на поле 30х30.

В данном проекте я всего лишь хочу поиграться с процессами ВЗАИМОДЕЙСТВИЯ между отдельными юнитами в отряде (и замоделировать их). И обучение использую лишь постольку-поскольку (поскольку мне самому лень заниматься подбором выигрышной стратегии поведения для каждого юнита). Потому что моя цель - вовсе не в этом. Можно, в принципе, выкинуть обучение из проекта совсем, и сам проект ничего от этого не потеряет. Но станет беднее, скучнее, что ли. Вот поэтому я добавил в него эту "перчинку". Пусть у каждого юнита появится немного индивидуальности. Ничему же это не противоречит.

А Сознание... Сознание - это Логика.

Модель основанная на свойствах Объектов и знании правил их взаимодействия. Собственно, поле из клеточек, правила перемещения по нему, запас хода, запас жизни у бойцов, дальность обзора, дальность стрельбы, и т.д. - это все и есть эти Правила и эта Логика, собственно, это и есть Модель Мира в Сознании, её даже отдельно строить нет необходимости (в данном случае) - нужно только ей правильно пользоваться. Поэтому и обучаться тут тоже, по сути дела, нечему.

Хотите обучения?

Моделируйте Подсознание, либо Сверхсознание. Там обучение задействовано в полный рост. В Сознании тоже есть обучение, но для его выявления нужно придумать совсем другую задачу, акцентирующую наше внимание именно на процессах обучения, причем исключительно на уровне Сознания. Хотите? Можем вместе придумать такую задачу.
[Ответ][Цитата]
гость
78.25.120.*
На: Второй уровень - Сознание - Действия в команде
Добавлено: 26 дек 13 5:02
Изменено: 26 дек 13 21:31, автор изменений: Vpolevoj
VGT>

не сразу заметил вопрос.
Cначала запаниковал (помятуя ваши зряшные притензии к упоминанию однослойного перцептрона и конструктивного нейрона), - никак 'самюэльсон'?, и вообще, спрашивать про A.L.Samuel это как спрашивать про Маккаллока или лябдаС.. никак, какой подвох.. В бардаке своих десяти книжных шкафов нашел классический сборник переводов "вычислительные машины и мышление" аж от '67 c хрестоматийной статьей сэмюэля. Нет, все правильно. Особенно обратило на себя внимание его замечание, что прием игры против самой себя был особенно важен (полезен) на начальном этапе обучения программы..
[Ответ][Цитата]
daner
Сообщений: 4593
На: Второй уровень - Сознание - Действия в команде
Добавлено: 27 дек 13 0:33
>>> vpolevoj

Ну и зачем тогда при таких рассуждениях вам вообще потребовались противники?
у них кстати тоже модель поведения есть ,как ни крути. так что либо вы ее учитываете либо вообще убираете их из среды. в любом случае все мои предварительные замечания относительно вашего алгоритма остаются в силе. ну предположим вы не используете обучение. тогда каковы остальные алгоритмы, которые вы собираетесь использовать? какая структура данных или скажем архитектура для описания модели среды , описание модели поведения своей команды? какая стротегия синхронизации команды?
[Ответ][Цитата]
daner
Сообщений: 4593
На: Второй уровень - Сознание - Действия в команде
Добавлено: 27 дек 13 0:37
относительно стротегии поиска которую собираетесь использовать.
она очень проблемна учитывая стенки и прочие объекты закрывающие обзор.
[Ответ][Цитата]
гость
78.25.120.*
На: Второй уровень - Сознание - Действия в команде
Добавлено: 27 дек 13 3:17
у полевого вообще есть глобальная проблема (в его умонастроении-подходе).

Еще на этапе лягушки все собирался спросить - а что ПРИНЦИПИАЛЬНО нового моделист
собирается обнаружить? вроде как ДЕЙСТВИТЕЛЬНО 'почти все ясно' (на уровне этих
представлений), хочется просто убедиться в своей способности запрограммировать
сравнительно простую ситуацию?

И на последующих этапах возникали формулироваки в таких ПРОСТЫХ понятиях, что было
совсем не понятно ЗАЧЕМ это моделирование? (велосипеды). Не целесообразней было бы
ознакомиться с контекстом и силы отдать ДЕЙСТВИТЕЛЬНО неочевидным вещам..

так и с этими 'агрессорами' и обучением 'на агресорах'. Ведь мал-мальски осмысленный
агрессор организует, скажем, ДВЕ цепи - первую как 'щупы', и будет силами второй
цепи эффективно подавлять обучающуюся защищающуюся сторону, обнаруживающую себя и
при попытках 'выскочить-выстрелить-спрятатся', не давая ее ЗАВЕРШИТЬ удовлетворительно
'курс' обучения (она так и не сможет понять почему ее так часто поражают).

Мне кажется, что тут ПОРОЧЕН сам подход полевого. Антагонистическая ситуация ('бой')
возникает на сравнительно высокой стадии развития интеллекта, это отнюдь не эксплуатация ТОЛЬКО навыков охоты. Даже высокоорганизованные 'войны' колоний
муравьев и межгрупповые столкновения cтай шимпанзе не используют даже таких сравнительно простых военных приемов как оборонные сооружения, лазутчики, обманные
маневры (коллективные), хотя используют дозорных, патрулирование территории.

Военный интеллект возникает отнюдь не на основе обучения сопротивления 'аргессивному'
противнику. Его основа гораздо более ШиРОКАЯ и опирается на значительный комплекс
базовых когнитивных механизмов. Думать о них и моделировать их КОМПЛЕКС - вот что
важно. А не натаскивать агента на сопротивление 'грубой' агрессии. Так получится
агент-сопротивленец, но не 'универсальный военный интеллект'..
[Ответ][Цитата]
Vpolevoj
Сообщений: 1408
На: Второй уровень - Сознание - Действия в команде
Добавлено: 27 дек 13 3:47
Изменено: 27 дек 13 4:31
Цитата:
Автор: daner
Ну и зачем тогда при таких рассуждениях вам вообще потребовались противники?

у них кстати тоже модель поведения есть, как ни крути. Так что либо вы ее учитываете либо вообще убираете их из среды.
Ну предположим вы не используете обучение.
Тогда каковы остальные алгоритмы, которые вы собираетесь использовать? Какая структура данных или скажем архитектура для описания модели среды, описание модели поведения своей команды? Какая стратегия синхронизации команды?

daner, вопрос Субъект-Субъектного взаимодействия при проектировании ИИ мы поднимали в теме у Анатоля, где он выделил несколько уровней задач применительно к оценке успешности ИИ:
1) выигрыш одной конкретной партии;
2) длительное обучение с постепенной наработкой навыков игры и затем выигрыш большинства партий из большой серии игр;
3) изучение особенностей игры конкретного противника (на небольшой серии партий) и последующий выигрыш у него (скажем, в одной ключевой партии или на турнире состоящем из нескольких игр).

Как видите, критерии разные, и, следовательно, задачи перед ИИ (а также и перед его создателями) ставятся тоже разные. В первом случае от ИИ требуется чтобы он УМЕЛ ХОРОШО ИГРАТЬ, вообще, в принципе, против любого усредненного игрока (как, например, шахматная программа). Во втором случае этого от ИИ не требуется - пусть даже поначалу будут проигрыши, но чтобы со временем ИИ обучался бы, набирался бы опыта, и наконец настал бы такой момент, когда ИИ мог бы выигрывать у большинства людей в большинстве партий (не у всех, заметьте, и не всегда). А в третьем случае от ИИ не требуется умение хорошо играть, не требуется также выигрывать у всех или у большинства, а требуется - всего-то навсего - изучить повадки и манеру игры ОДНОГО КОНКРЕТНОГО человека и выработать такую собственную стратегию поведения в игре, которая бы заведомо приводила к победе, играя против этого конкретного человека (в одиночной партии, либо в серии игр - на турнире). И это - очевидно - разные задачи, или, как я говорю, берутся в обработку МОДЕЛИ разного уровня - разные МОДЕЛИ.
Цитата:
Автор: Анатоль
Тут нужно различать два уровня (по крайней мере) задачи. И соответстветствующих каждому уровню целей.

Высший уровень.
Задача программы - выработать эффективную стратегию игры. Целью тут является стратегия. Условие стопа - определённое время или определённое количество сыгранных партий.

Уровень игры.
Задача - победить. Цель - целевое состояние (пять крестиков в ряд).
Условие стопа - выигрыш (или проигрыш, или ничья..)
Цитата:
Автор: Анатоль
А ещё лучше, чтобы сама и правила игры себе придумывала..
Но в этой теме задача скромнее.

Я пока (и условно) выделяю всего три Модели: Модель пространства, Модель правил (возможных действий или ограничений) и Модель Субъекта (особенностей поведения себя или противника).

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

Почему я считаю, что задача согласованных действий отряда бойцов с различной их специализацией это - Модель правил (действий и ограничений)? А потому, что пространство у всех бойцов (и у всех отрядов, в том числе и у вражеских) одно - общее на всех - одинаковое. Правила передвижения по этому пространству и взаимодействия с ним задаются игрой (фактически для них они объективные). Но, поскольку возможности у каждого из бойцов разные и они заданы его специализацией, то один далеко видит (разведчик), другой далеко, метко и очень больно стреляет (снайпер), третий может входить в близкое соприкосновение с противником и поливать его огнем (штурмовик) и т.д. То есть, пространство-то одно, но вот сейчас конкретно в этой точке пространства находится именно вот этот, а не другой, боец, и что может он, не может другой, а что может другой - не может он. Но все вместе, как единый отряд, они могут ВСЁ. Важно лишь сделать так, чтобы в нужном месте в нужное время оказался бы именно тот боец, именно с такими возможностями и характеристиками, какими нужно. То есть, происходит МАНИПУЛИРОВАНИЕ ВОЗМОЖНОСТЯМИ отдельных бойцов на уровне всего отряда - как единого организма. А для этого как раз и нужна грамотная МОДЕЛЬ возможностей всего отряда. Иначе нечем и незачем будет манипулировать.

И если мой первый проект второго уровня - Сознания - про "слепого" робота - был связан с Моделью пространства, и с умением манипулировать этой моделью, то этот - мой второй проект - про действия бойцов в команде - связан именно с созданием и умением манипулировать Моделью возможностей (в данном случае, собственных возможностей, возможностей своего собственного отряда). Ни о каком изучении поведения другого - вражеского - отряда речи пока нет (потому что такой задачи я пока пред собой не ставлю). И даже обучением тоже, на мой взгляд, можно в данном случае пренебречь, поскольку и без него можно составить и написать АЛГОРИТМ взаимодействия пяти бойцов различной специализации. Обучение нужно лишь для индивидуальной подгонки поведения при столкновении с противником придерживающимся различной тактики и стратегии, но это, как я, надеюсь, уже объяснил, выходит за рамки данной задачи.

Первая задача - связана с Моделью пространства ("слепой" робот).
Вторая задача - связана с Моделью возможностей (отряд бойцов).
И только лишь третья задача (если мы до неё доживем, и созреем) будет касаться непосредственно Модели Субъекта (его особенностей). Потому что это - третья модель, и она должна обрабатываться отдельно от всех других моделей, и задача связанная с обработкой этой модели - тоже другая, другого уровня.

А теперь попробую ответить на оставшиеся ваши вопросы (хотя я считаю, что вы и тут несколько сгрудили их все в кучу).

>Предположим вы не используете обучение, тогда каковы остальные алгоритмы, которые вы собираетесь использовать?

Поскольку я моделирую уровень Сознания, то я собираюсь для генерации алгоритмов поведения моих юнитов использовать ЛОГИКУ, поскольку я считаю, что Сознание - это прежде всего Логика, то есть, все что опирается на Логику, это, по моим представлениям, и есть Сознание. (Пример (с точки зрения одного бойца, которому передано управление): я вижу противника, я могу за свой ход подойти к нему и один раз выстрелить, а могу выстрелить (один раз) и лишь потом подойти, а могу убежать и тем самым выйти из его поля зрения: вопрос - что нужно предпринять? Выбор, на самом деле, предопределяет Логика, от того как это будет заложено в правилах, от этого будет зависеть и выигрышность той или иной тактики - все просчитывается, а это - на мой взгляд - и есть Сознание).

>Какая структура данных или скажем архитектура для описания модели среды, описания модели поведения своей команды?

Для описания модели среды (пространства) я использую примерно те же приемы, что и в программе с роботом (за исключением "зон видимости", которых у "слепого" робота нет). Это - клетчатое поле, с возможностью передвигаться по нему строго вертикально и горизонтально не выходя за его пределы. На поле помещаются стенки, которые препятствуют передвижению и видимости. И это все.

А для описания возможностей поведения (действий) команды в программу заложены специальные параметры, имитирующие различные возможности бойцов: дальность обзора, количество шагов, количество здоровья, дальность стрельбы, наносимый урон при попадании, возможность лечить раны и т.д. При своем ходе программа анализирует все имеющиеся возможности каждого из бойцов и выбирает (на её взгляд) наилучший вариант. Так формируется конкретное поведение каждого бойца и всего отряда в целом.

> Какая стратегия синхронизации команды?

Я об этом уже писал, когда критиковал условия проведения конкурса, который и стал запалом для этой моей темы. Я считаю, что СОГЛАСОВАННЫХ действий бойцов в одном отряде никогда не получится, пока у них не будет ОДНОЙ общей на всех МОДЕЛИ пространства, в которой бы для каждого из них нашлась бы своя цель и задача. То есть, одна общая модель пространства и один единый ЦЕНТР КОМАНДОВАНИЯ - управления. Как я уже говорил, отряд очень похож на единый организм, разве что все его функции разнесены по различным юнитам.

То есть, не каждый боец - по отдельности - решает что и как ему делать, когда к нему переходит управление, а, скажем, Командир, задает для каждого бойца конкретную задачу, и он решает куда этому бойцу идти и что ему делать, рассматривая складывающуюся ситуацию с точки зрения извлечения пользы для всего отряда, грамотно (то есть, ЛОГИЧНО) распределяя функциональные возможности каждого из бойцов в Пространстве.

Надеюсь, я все же сумел ответить на ваши вопросы.
[Ответ][Цитата]
Vpolevoj
Сообщений: 1408
На: Второй уровень - Сознание - Действия в команде
Добавлено: 27 дек 13 4:18
Изменено: 27 дек 13 5:41
Цитата:
Автор: daner
относительно стратегии поиска которую собираетесь использовать.
она очень проблемна, учитывая стенки и прочие объекты закрывающие обзор.

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

Как я уже писал, я делю все поле 30х30 на четыре четверти по 15х15 клеток. Учитывая среднюю дальность обзора практически всех бойцов - 6 клеток, зона охвата взором получается довольно большая - 6 клеток туда, 6 клеток сюда, итого - 13 клеток (с учетом той клетки, на которой стоит сам боец). Невидимыми остается всего-ничего клеток, правда, как вы верно заметили, нужно учитывать еще и те клетки, которые скрыты за стенками, и в углах, но в них - в эти потаенные уголки - можно заглянуть и особо. Разве нет?

А сделать это можно, например, так.

Входим в четверть. Часть клеток этой четверти сразу же оказываются в поле зрения (вычеркиваем их). Составляем список клеток, которые остались вне поля зрения (по разным причинам: из-за их удаленности или же из-за скрытости их за стенками). Берем первую клетку из этого списка и направляемся в её сторону, до тех пор, пока она не высветится (не станет видна полностью), а это, как вы понимаете, может произойти много раньше, чем мы дойдем до неё (и к тому же попутно высветится еще много других клеток). Итак, одну клетку мы высветили - вычеркиваем её. Смотрим на оставшийся список. Берем первую по списку. Идем в её сторону... И т.д. Как только все клетки этой четверти 15х15 окажутся обследованными (высвеченными), значит осмотр окончен и нужно переходить в другую четверть.

По моему, неплохой алгоритм. Правда он связан с особенностями именно этого игрового мира (в другом мире и при других соотношениях зон обзора видимости/невидимости он может не быть столь эффективным, но в данном случае мне нет необходимости придумывать более универсальный алгоритм - сгодится и этот).
[Ответ][Цитата]
Victor G. Tsaregorodtsev
Сообщений: 3187
На: Второй уровень - Сознание - Действия в команде
Добавлено: 27 дек 13 5:34
Цитата:
Автор: гость
классический сборник переводов "вычислительные машины и мышление" аж от '67 c хрестоматийной статьей сэмюэля. Особенно обратило на себя внимание его замечание, что прием игры против самой себя был особенно важен (полезен) на начальном этапе обучения программы..

А, вот кого Вы имели в виду...
Просто у Фогеля приводилась аналогичная картинка (выход навыков на асимптоту, т.е. самая высокая скорость улучшения рейтинга была вначале), а поскольку его работа по нейрошашкам (где особи внутри поколения ген.алгоритма рубились друг против друга) была чуть больше 10 лет назад... я и подумал именно про Фогеля.
[Ответ][Цитата]
daner
Сообщений: 4593
На: Второй уровень - Сознание - Действия в команде
Добавлено: 27 дек 13 13:56
>> Vpolevoj
[...Надеюсь, я все же сумел ответить на ваши вопросы....]

думаю что ответили.
но вообще присоединяюсь к вопросу 78.25.120.*
зачем изобретать столь тривиальные велосипеды?
[Ответ][Цитата]
 Стр.2 (2)1  [2]<< < Пред.