![]() |
![]() |
RathaR |
![]()
Сообщение
#1
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: Иван Репутация: ![]() ![]() ![]() |
Вот, меня весьма заинтересовала идея Lappa , о написании кокой нибуть вариации монополии, с самообучающимся ИИ. Погуглил я на эту тему, но единственное что нашёл, это описание принципа роботы с крестиками-ноликами и много бредней про то что машины зохавают мир
![]() Поэтому и решил создать тему здесь, об самообучении ИИ в общем, и об монополии в частности. Так вот, как я это представляю: допустим в игре участтвуэт самообучающийся ИИ, и человек/жёстко заданый ИИ. Весь процес самообучения происходит следующим образом (поправте или скоординируйте меня если неправ): Человек/жёстко заданый ИИ делает ход, попадая на определённый участок(правила монополии я думаю всем известны ![]() Вот так и будет продолжаться игра, кроме того, самообучающийся ИИ будет записывать каждый раз когда его опонент заложит какой либо участок, или возьмёт зсуду в банке, и в случае возникновения похожей ситуации, будет поступать также, брать похожую зсуду, закладывать примерно равноценный участок. Ставить дома и отели на своих участках он тоже будет только после того как "научиться " этого у опонента. Хух, теперь о следуюющем ![]() После всего этого у меня возник ряд вопросов: 1) Всётаки монополия - это не крестики нолики, и каждая игра займёт время, такчто обучаться он будет медленно, в связи с этим появляеться необходимость сделать "автоматический режим " в игре, когда она будет играть сама з собой опр кол-во партий, чтобы достигнуть того или иного уровня знаний? 2) А вообще реально ли это зделать?, я имею в виду, не будет ли это всё занимать огромные обьёмы памяти, и не будет ли ИИ думать по 10 мин? ( прошу дать хоть приблизительную оценку, по даному алгоритму, потомучто мне самому очень тяжело об этом судить) 3) Правильно я уразумел алгоритм хотябы в общих чертах? Очень прошу поправить меня там где неправ ![]() И с удовольствием выслушаю другие идеи по поводу этой же темы, или алгоритма. И вообще мне кажеться что всё это не очень сложно в реализации, сложности могут возникнуть лишь с интерфейсом, графикой, а в общих чертах алгоритм сравнительно прост, или я не прав? З.Ы. Lappу +1 за идею (уж очень она мне понравилась ![]() Сообщение отредактировано: RathaR - 1.08.2009 17:15 -------------------- Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик! Я - системный аналитик! |
![]() ![]() |
andriano |
![]()
Сообщение
#2
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: ![]() ![]() ![]() |
1. Под обучением обычно понимается совсем не тот процесс, что описан в первом сообщении. Там было "Запомнить, как поступил оппонент, и делать так же, как он". На самом деле обучение состоит примерно в следующем:
- на основе некоторой функц с настраиваемыми коэффициентами осуществляем выбор хода. - ходим. - ждем некоторое время (обычно не ранее окончания ответного хода оппонента и не позднее конца игры), когда будет ясно, "хорош" или "плох" оказался сделанный ход. - вносим изменения в настроечные коэффициенты нашей функции таким образом, чтобы увеличить вероятность выбора "хороших" ходов и уменьшить "плохих" в дальнейшем. 2. Процесс обучения - весьма длителен по времени, поэтому в подавляющем большинстве случаев человеку надоест играть раньше, чем ИИ завершит хотя бы первый цикл обучения. Поэтому IMHO реализация обучения непосредственно в процесссе игры утопична (кроме небольшого числа частных случаев игр, где по самому характеру игры возможно провести процесс обучения быстро), а обучение ИИ может быть целесообразно лишь на стадии тестирования и балансировки игры. |
Lapp |
![]()
Сообщение
#3
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
1. Под обучением обычно понимается совсем не тот процесс, что описан в первом сообщении. ... andriano высказал то, что плясало у меня на языке, но так и не сформулировалось. Точнее, это все сказано в теме про Калах, но тут надо было подчеркнуть. Так сказать, основной принцип этого способа "обучения".Есть игровая ситуация (то есть состояние всех переменных) и есть ходы, сделанные в этой ситуации. Событием же назовем определенный ход в определенной ситуации. Событие может быть хорошим и плохим, а точнее - иметь вес, и это оценивается по результатам партии. Иначе говоря, все события (то есть все ходы, сделанные в возникших в игре ситуациях) победителя считаются хорошими, и их вес увеличивается на единицу. Напротив, вес всех событий проигравшего после игры мы уменьшаем на единицу. В этом и состоит обучение: когда очередная игра закончилась, мы пополняем БД событий новыми возникшими событиями (с нулевым начальным весом), а потом проводим политику кнута и пряника: вес хороших событий увеличиваем, плохих - уменьшаем. Соответственно, размер этой БД, являющейся нашим обучаемым мозгом, определяется количеством состояний в игре, умноженным на количество ходов (это в предположении, что для веса достаточно 1 байта). А если быть более точным, то это сумма Mi по всем состояниям, где Mi - количество ходов в i-том состоянии. Это число, даже для уже квантованных игр (то есть у которых пространство состояний не непрерывное, а дискретное), как правило немаленькое. Я в своем выборе (Калах) руководствовался именно тем, что размер БД должен быть как можно меньшим - и то он получился огромным (и, кажется, отпугнул тебя, RathaR). В ситуации же с непрерывными параметрами размер БД будет зависеть от уровня квантования (чем мельче уровни - тем он больше), и маленьким он точно не покажется. Но думается мне, что этот подход в них вообще нежелательно применять в таких играх (в частности, по этой причине). 2. Процесс обучения - весьма длителен по времени, поэтому в подавляющем большинстве случаев человеку надоест играть раньше, чем ИИ завершит хотя бы первый цикл обучения. Поэтому IMHO реализация обучения непосредственно в процесссе игры утопична (кроме небольшого числа частных случаев игр, где по самому характеру игры возможно провести процесс обучения быстро), а обучение ИИ может быть целесообразно лишь на стадии тестирования и балансировки игры. Это тоже верно, но никто же не заставляет играть реально. Мои программы играли сами с собой, а также с программой, ходящей случайным образом (на начальной стадии весьма полезно). Кроме того, я уже высказывал мысль такую: выложить ее на сайт в Инет, пусть народ играет. И посматривать на нее время от времени)).-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 0:16 |