![]() |
|
Модераторы: Rickert |
![]()
|
|
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Все знают мощные шахматные программы: ChessMaster, Frith, ну и конечно же известнейший Deep Blue. А многие даже сами умеют играть в шахматы
Но вот кто знает, как научить компьютер играть в шахматы? Ведь что такое шахматная игра? Это анализ позиции, просчет ходов с анализом будующих позиций в огромном количестве. Как объяснить компьютеру, что эта позиция лучше той, когда это не очевидно самому? Это и хранение, а главное быстрый доступ к большому количеству данных. А что такое ИИ? Если не самообущающаяся система? А разве можно научится играть в шахматы если постоянно не обучатся? не запоминать новые позиции, новые решения? Кто может предложить эффективный алгоритм шахматной игры? Кто сможет сделать этот первый шаг к созданию искуственного интеллекта? Мне лично пока не удалось..... -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: 5 Всего: 9 |
Конечно таким я похвастатся не могу, но помню в 12 лет я обучил играть в шахматы паскаль... там все глючило, но он делал ходы, играл
Только в опр. момент почему-то у игрока все фигуры превращались в ферзи и он я проигрывал, т.к. король исчезал, так я тогда этот глюк и не отловил... могу поискать старый код, если кому интересно, там всего только циклы и условия - никаких нейронных сетей... |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Программка на Паскале есть и в книжках. Интересно не научить программу фигуры двигать, а научить ее думать
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: 5 Всего: 9 |
Ну вот она и думала - ты с компом типо играл... кстати достаточно неплохо он ходил, пока глюк с ним не происходил...
|
|||
|
||||
| Helicopterr |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 355 Регистрация: 20.8.2005 Где: Stavropol Репутация: нет Всего: 3 |
Cashey тебе известна игра сёги? Знаешь почему нет программ которые достойно играли бы в сёги? Число возможных вариантов в митльшпиле сёги на 360 порядков больше, чем в шахматах. Шахматные ИИ - это алгоритмы кот. сокращают число вариантов для перебора, отбрасывая плохие. Т.е. в основе метод перебора, как ни крути. По сути дела это никакой не ИИ.
-------------------- people can fly |
|||
|
||||
| DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: 5 Всего: 9 |
Ну почему же, можно сделать и ИИ, просто перебором тоже возможно, я так и делал в свое время (мне тогда о нейронных сетях ниче извесно небыло)) ) берешь и смотришь, если можно короля съесть - мат, если ферзя и при этом нас не съедят - едим и т.д....
|
|||
|
||||
| DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: 5 Всего: 9 |
Вот, нашел какой то свой старый архив (только я не уверен что это вообще работает - среда Turbo Pascal 7.0) - привожу кусок, отвечающий за ИИ. По кускам)
Для 12 летнего парня помоему нормально
Так влезла где-то 1/4 процедуры, иначе говорит что слишком большое сообщение, ну и ладно, приложу весь файл, не уверен тока что скомпелируется, но вроде должен) Присоединённый файл ( Кол-во скачиваний: 18 )
ACHES3.rar 8,07 Kb |
|||
|
||||
| dereyly |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 16.6.2006 Репутация: 2 Всего: 4 |
Да я вот тоже думал как сделать обучаемую программу, те же шахматы...
Рассмотрим партию в шахматы как поиск в пространстве состояний, 1й ход порождает 10 потомков, наверное идеей метода шахмотных програм запомнить партии и использовать их как наиболее вероятные состояния в дереве состоянийесли позиция на доске совподает с канонической то выбираем один из возможных вариантов из БД (БЗ), но фигня в том что состояний бесчисленно много и точного совпадения ждать не приходится поэтому следут I) По некоторому алгоритму кластерилизовать позицию на доске и рассматривать уже комбинации подсостояний (вот тут уже самою интересное ), что выступает в роли критерия кластеризации: а) Набор фигур имеющие атакующе (защитные) связи? б) Король и его степень свободы (стоит ли вводить степень свободы для всех фигур?) И вообще как коомбинировать кластеризованную позицию, тоже по графу состояний? II) Сравнивать целые позиции по каккому нибудь критерию идентичности позиция с наибольшим критерием (весом) является продолжением хода... Это сообщение отредактировал(а) dereyly - 18.6.2006, 17:46 |
|||
|
||||
| Fin |
|
|||
![]() Дракон->Спать(); ![]() ![]() Профиль Группа: Участник Сообщений: 687 Регистрация: 4.1.2006 Репутация: нет Всего: 10 |
Очень давно читал статейку. Поэтому имена и даты не помню. Помню только идею. Какие коэфиценты брать, чтобы оценивать ту или иную ситуацию партии.
Брали две одинаковые программы. В одной жестко задавали коэфиценты. У второй коэфиценты мутировали в самом начале серии партий. Обыгрывалось 10 партий. Если программа с мутированными коэфицентами выигрывала серию, то эти коэфиценты переписывались в первую программу. Если проигрывала, то линия мутации отбрасывалась. И так продолжалось по циклу. Это сообщение отредактировал(а) Fin - 18.6.2006, 18:11 -------------------- Пролетал мимо. |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: нет Всего: 60 |
Совершенно верно, но почему не создать анализирующий, самообучающийся алгоритм? задача не тревиальная и до сих пор ни кем не реализованная. -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| DragonFire |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 725 Регистрация: 14.8.2005 Где: Москва Репутация: 5 Всего: 9 |
||||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
Имхо самое главное во всех алгоритмах критерий по которому определять , хорош ход будет или нет, вот как его определить?
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| unicuum |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 16.3.2005 Где: Рашка Репутация: нет Всего: 8 |
Я во что думаю, программа, когда перебирает варианты, в некотором роде мыслит. Да у неё нет внешних рецепторов, если рассматривать шахматы. И её алгоритм, скорее всего линейный и основан на примитивном переборе. Но вот возьмём реальность, те же самые вирусы, они ведь не живые и думать не умеют, а зато как могут изгадить жизнь органического существа. А в чём их отличие от человека или на худой конец животного? Ведь изначальный принцип органики один и тот же – углерод, водород, азот, кислород и так далее. Всё это находится в воде или как-нибудь иначе, но ведь некоторые высокоорганизованные формы жизни научились запоминать правильные или не правильные решения и на основе этого делать выводы, действовать. Причём каждый раз рассматриваются варианты находящиеся в центральной нервной системе, у человека это головной мозг. Человека можно осмыслить, его можно понять, можно предсказать как он будет действовать в той или иной ситуации, те же шахматы, но он лишь один из носителей разума и я не то чтобы не согласен, что человеческий разум нельзя повторить в программах, я считаю что лучше потратить усилия на более высший по скорости и принятию правильных решений ИК. Стоит отметить, что для одних носителей разума решения правильной, а для других этот же самый вариант нет, но вот применительно к шахматам это правило не действует. В шахматах главное победа. К примеру, если уж речь зашла именно об ИК, то, безусловно, он должен самообучаться. Если ИК ознакомить с правилами игры, пусть даже и насильно, то есть прямым вводом в его электронные мозги и ввести цель, которую он должен добиться, то есть определённое стечение обстоятельств называемую победой и при всём при этом программа ИК сама выработает оптимальный (самый лучший в данных обстоятельствах) алгоритм действий, то в таком случае он уже будет обладать половиной необходимого для полноценного разума свойствами. А именно – решение поставленной задачи. Второе свойство называют силой воли, это то, что заставляет разум действовать самостоятельно исходя из текущих потребностей. -------------------- ![]() обычный день на винграде |
||||
|
|||||
| bankuss |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 396 Регистрация: 26.3.2004 Репутация: нет Всего: 4 |
насчет шахмат заходите сюда http://immortal223.fastbb.ru/ и сюда http://kasparovchess.crestbook.com/
Добавлено @ 13:33 сам отвечу так - в шахматных программах нет ИИ. там простой перебор с оценкой получившейся позиции. чем глубже перебор и точнее оценка, тем сильнее играет программа. + насколько она хорошо умеет "резать" плохие ходы. самообучение реализовано только в дебютной библиотеке: если некий вариант, разыгрываемый программой привел несколько раз к поражению, то оценка хода, ведущего к этому вариатну уменьшается и уже в следующей партии программа этот ход не выберет. эндшпили 3-4-5 фигурные уже просчитали до конца - тут программа играет без ошибок, она точно знает какой ход ведет к победе или сохраняет ничью. потихоньку обсчитываются 6-ти фигурные эндшпили - но это очень трудоемкая задача! на данный момент обчитана едва ли половина и она уже занимает в сжатом виде порядка 80Гб!!! (5-ти фигурные 20Гб) но это реально усиливает игру машины в окончаниях и переходе из миттельшпиля в эндшпиль, так что игра стоит свеч (хоть и таким грубым способом). я сам являюсь автором движка ALChess - сделал чисто из любопытства, поэтому сильной программы не получилось (сейчас думаю переделывать и улучшать) играет на 1 разряд примерно. |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: нет Всего: 146 |
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
![]()
|
| Правила форума "Программирование игр, графики и искуственного интеллекта" | |
|
|
НА ЗЛОБУ ДНЯ: Дорогие посетители, прошу обратить внимание что новые темы касающиеся новых вопросов создаются кнопкой "Новая тема" а не "Ответить"! Любые оффтопиковые вопросы, заданные в текущих тематических темах будут удалены а их авторы, при рецедиве, забанены.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rickert. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Программирование игр, графики и искусственного интеллекта | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |