Программирование шахмат
У меня есть идея, написать свой шахматный движок. С целью попрактиковаться в программирование да и в шахматах тоже.
Мож еще ктото тож хочет. Я имею работу не над одним проектом, а за разными, с целью посмотреть чья программа сильнее. Но конечно это не сейчас, после сессии естественно.
Мож еще ктото тож хочет. Я имею работу не над одним проектом, а за разными, с целью посмотреть чья программа сильнее. Но конечно это не сейчас, после сессии естественно.
Против людей играет довольно неплохо (стабильно обыгрывает знакомых 1-разрядников и КМС-ов), против других движков - похуже (рейтинг 2300 ЭЛО).
Если интересно - пишите! Могу поделиться исходниками (Delphi) :)
З.Ы. а насчет повторения позиции и правила 50 ходов:
повторения лучше делать не через сравнение позиций 2 и 4 полухода назад. Правильней хранить хэши всех позиций которые встречались, и в которые можно попасть из данной позиции (то есть все позиции после хода пешки или взятия (таких позиций теоретически может быть не много - не более 50)). также запоминаем количество таких позиций - если оно больше 50 - оценка 0, т.к. правило 50 ходов. :) И если есть совпадение текущей позиции с 2-мя позициями из этого списка - повторение :)
Вопрос - какой хэш? MD5 думаю снизит скорость работы вдвое... надо что-нибудь попроще...
А так, мне не жалко!
Вот движок (UCI): http://urshak2006.narod.ru/files/ur11b.zip подключать к любой оболочке, поддерживающей этот протокол.
А вот моя собственная оболочка http://urshak2006.narod.ru/files/ur.exe правда глючная и недоделанная.. но у меня и цели не было оболочку делать. Написал просто чтобы было :)
С продлениями в моем движке довольно неплохо (не смог реализовать нормально только продление при единственном отходе от шаха). У меня проблемы с сокращениями - режет все подряд, даже то, что не стоит (особенно заметно, когда пешка скоро превращается в ферзя - вообще в упор не видит). Но все же в большинстве позиций сокращения дают довольно неплохое усиление за счет увеличения глубины.
Шахматы плохой пример для тестирования ИИ.
Значит ли это, что ИИ еще слабо развит?
Иван Freeman Макляков , есть ли перспективы применения нейросетей в движках для оценки позиции путем сравнения ее с другими характерными позициями, у которых оценка известна?
Я вообще-то не очень уверен, возможно я неправ.
Насчет нейронных сетей - врядли. Вроде уже пытались написать такую программу - думала очень долго и проигрывала всем. Хотя подробностей я не знаю.
А вот что-то наподобие генетических алгоритмов уже используется для автоматической настройки параметров оценочной функции (вроде так рыбку настраивали). Я тоже начинал писать настройщик, но забросил когда новый комп взял - взялся за создание многопроцессорной версии своего движка :)
Механитис - профессиональное заболевание тех, кто верит, что ответ задачи, которую он не может ни решить, ни даже сформулировать, легко будет найти, если получить доступ к достаточно дорогой вычислительной машине.
>потому спектр решаемых задач сильно отличается.
Тогда это уже не имеет права называться компьютером.
На эту тему есть фундаментальный труд Шредингера 45-го года "Волновая механика и жизнь". Так что насчет квантовых вычислений живыми организмами неизвестно.
На эту тему надыбал книгу Р. Пенроуза "Новый Ум Короля", как прочитаю - расскажу :)
А пока что я сделал доску и фигуры для Чесспланет из Аквариума, то есть теперь доска и фигуры могут быть как в аквариуме, тока на планете) Скачать отсюда: http://letitbit.net/download/32784.320711c848b964d84...
Для установки, распаковать в папку \Program Files\Rybka Aquarium\PieceThemes