IPB
ЛогинПароль:

> Теория самообучающейся программы, на примере монополии
RathaR
сообщение 1.08.2009 13:30
Сообщение #1


Знаток
****

Группа: Пользователи
Сообщений: 346
Пол: Мужской
Реальное имя: Иван

Репутация: -  7  +


Вот, меня весьма заинтересовала идея Lappa , о написании кокой нибуть вариации монополии, с самообучающимся ИИ. Погуглил я на эту тему, но единственное что нашёл, это описание принципа роботы с крестиками-ноликами и много бредней про то что машины зохавают мир smile.gif
Поэтому и решил создать тему здесь, об самообучении ИИ в общем, и об монополии в частности.
Так вот, как я это представляю:
допустим в игре участтвуэт самообучающийся ИИ, и человек/жёстко заданый ИИ.
Весь процес самообучения происходит следующим образом (поправте или скоординируйте меня если неправ):
Человек/жёстко заданый ИИ делает ход, попадая на определённый участок(правила монополии я думаю всем известны smile.gif ему нужно определить что делать дальше - либо купить его либо пустить на аукцион. Этот выбор он делает исходя их жёстких формул, определяя степень "необходимости" для него этого участка, он учитывает его стоимость, наличие у него участков такогоже цвета, арендную плату, суму денег в наличии а также степень нужности этого участка для противника, а если противнику он некчему, то может сдать этот участок на аукцион(!) чтобы попробывать купить его подешевле. В это время самообучающийся ИИ следит за действиями человека/жёстко заданого ИИ, и у себя в памяти записывает ситуацию и решение опонента(допустим у него в памяти есть ячейка для каждого участка, и в соответствующую ячейку он записывает: суму денег которая была у опонента, кол-во участков, как других так и такогоже цвета, рентабельность участка, и т.д, ну и наконец решение которое принял его опонент) дальше если в игре самообучающийся ИИ попадёт на етот участок, он сравнит ту ситуацию что сейчас у него (суму денег друг участки, рентабельность), и те ситуации что были у его противника, что у него записаны, и выберет то решение которое противник принял в наиболее похожей ситуации (тоесть под ситуацией я подразумеваю економ состояние игрока).
Вот так и будет продолжаться игра, кроме того, самообучающийся ИИ будет записывать каждый раз когда его опонент заложит какой либо участок, или возьмёт зсуду в банке, и в случае возникновения похожей ситуации, будет поступать также, брать похожую зсуду, закладывать примерно равноценный участок.
Ставить дома и отели на своих участках он тоже будет только после того как "научиться " этого у опонента.

Хух, теперь о следуюющем smile.gif
После всего этого у меня возник ряд вопросов:
1) Всётаки монополия - это не крестики нолики, и каждая игра займёт время, такчто обучаться он будет медленно, в связи с этим появляеться необходимость сделать "автоматический режим " в игре, когда она будет играть сама з собой опр кол-во партий, чтобы достигнуть того или иного уровня знаний?
2) А вообще реально ли это зделать?, я имею в виду, не будет ли это всё занимать огромные обьёмы памяти, и не будет ли ИИ думать по 10 мин? ( прошу дать хоть приблизительную оценку, по даному алгоритму, потомучто мне самому очень тяжело об этом судить)
3) Правильно я уразумел алгоритм хотябы в общих чертах?

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

З.Ы. Lappу +1 за идею (уж очень она мне понравилась smile.gif )

Сообщение отредактировано: RathaR - 1.08.2009 17:15


--------------------
Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик!
Я - системный аналитик!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Lapp
сообщение 2.08.2009 9:02
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(RathaR @ 1.08.2009 14:30) *
+1 за идею (уж очень она мне понравилась smile.gif )bltz
Идея-то хорошая, хотя и не моя)). Но насчет применения ее (в чистом виде) в Монополии - ох, сумлеваюсь..

Идею лично я почерпнул у Гарднера, Мартина. Какая книжка - не помню (одна из первых); у меня была практически полная коллекция, но все они не со мной сейчас. Там была рассмотрена имено игра Крестики-Нолики, причем в самом примитивном виде, поле 3х3. Книга вышла в конце 60-х, когда никто и не помышлял о широком внедрении компьютеров в массы. Реализовывалась на спичечных коробках, каждый из которых представлял грубо говоря переменную в памяти (типа байт)), как мы сейчас можем сказать. Опуская подробности, скажу, что одним из основных условий реализуемрсти такого автомата является несильное ветвление графа игры. Иначе говоря, если на каждои ходу у игрока выбор из нескольких ходов - годится. А если десятки и сотни (как в шахматах) - увы и ах..(( В Калахе, например, ходов никогда не больше 6. А кроме того, он очень легко масштабируется на меньшее число ячеек, и все становится совсем просто. Еще нужно заметить, что с точки зрения человека эта игра как раз сложная (сложность для человека, я считаю, определяется величиной изменений на доске за один ход). Вот и получаем в итоге крайне благоприятный материал для реализации. Кстати сказать, крестики-нолики 5-в-ряд на большой доске совершенно не удовлетворяют первому условию.

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

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


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
RathaR   Теория самообучающейся программы   1.08.2009 13:30
Lapp   +1 за идею (уж очень она мне понравилась :) )bltzИ...   2.08.2009 9:02
RathaR   эм...я,не сильно розбираюсь в теории графов, скаж...   2.08.2009 13:29
Lapp   эм...я,не сильно розбираюсь в теории графов, ...   8.08.2009 1:28
RathaR   Я обещал "покумекать и написать" - вот,...   8.08.2009 23:19
Гость   > признателен что эта тема не канула в небытие ...   9.08.2009 3:16
Lapp   Предыдущий пост мой. Странно, вроде я входил...   9.08.2009 3:24
RathaR   Я так понял что речь идёт о приоритетах при срав...   9.08.2009 12:17
andriano   1. Под обучением обычно понимается совсем не тот п...   14.09.2009 12:26
Lapp   1. Под обучением обычно понимается совсем не тот п...   15.09.2009 0:52
andriano   ...ходы ... победителя считаются хорошими, и их ве...   15.09.2009 17:36
Lapp   Ну, в частном случае может быть и так.Я и не говор...   16.09.2009 1:44
RathaR   [b]RathaR, ты следишь за темой? И как дела с тво...   16.09.2009 19:03
andriano   Я не спец в этой терминологии, но трудно согласить...   17.09.2009 17:30
Shuruper   Я представляю решение этой задачи путем анализа ош...   20.09.2009 19:35
Lapp   (гипотеза!)Гипотезы - это хорошо, но ты не ука...   21.09.2009 10:10
Shuruper   - вот с этого места, пожалуйста, поподробнее.. И...   21.09.2009 14:51
Lapp   файл может содержать все что угодно, начиная прост...   22.09.2009 0:54
andriano   Гипотезы - это хорошо, но ты не указал ни механиз...   21.09.2009 22:15
RathaR   По поводу самого алгоритма "300 коробков...   30.10.2009 15:34
Lapp   может существуют другие самообучающиеся алгоритмы,...   31.10.2009 1:13
andriano   Самообучение подразумевает обязательное наличие об...   31.10.2009 10:03
Lapp   пришло в голову любопытное соображение: в технике ...   3.11.2009 8:42


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 23:58
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"