Форум: "Потрепаться";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.11;
Скачать: [xml.tar.bz2];




Вниз

Chess 


BFG   (2001-12-20 18:22) [0]

Привет всем. Согласитесь, что шахматы довольно весёлая вещь...
Ну вообщем, кто нибудь, когдонибудь их мутил? Если нет ,то хотя бы поделитесь соображениями на этот счёт.Вообще я представляю себе проблему в таком виде :
1. Без рекурсии не обойтись!
2. Если использовать рекурсию,то я думаю надо сделать так, чтобы
комп делал такой выгодный ход, чтобы любой ход противника был
не выгодным.
Вроде бы всё ладно да складно , а как начинаешь водворять идею в жизнь, то фигня получиется! Вообщем, если кто чего может путного
сказать, то прошу не лениться и напрячь пальци и свои умственные возможности.Зарание спасибо!



Юрий Зотов   (2001-12-20 21:08) [1]

Шахматные программы писались в довольно большом количестве. И писались они серьезными коллективами профессиональных математиков, шахматистов, программистов и т.д. Потому что шахматная программа - штука ОЧЕНЬ сложная и работа эта ОЧЕНЬ серьезная.

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



evgeg   (2001-12-20 21:34) [2]

Эти программ дейсвительно полно и публиковались они во всяких журналах, чуть ли не для микрокалькуляторов. Так что, BFG, дерзай, ничего такого суперсложного там нет.
Скоро нам умножение двухзначных чисел будет казаться очень сложным делом.:) Говорят, что в Америке уже так и есть... Не был, не знаю.:)

А по существу вопроса я почти ничего сказать не могу - не интересовался.
Вроде бы задача решается перебором (с точки зрения перебора она вообще тривиальна - только времени уйдет слишком много). Поэтому стараются отсекать заведомо проигрышные пути. Устанавливают цену позиции и выбирают те пути, которые ведут к увеличению ценности. Число шагов, на которые смотрят вперед ограничивают.



Tosov   (2001-12-20 23:47) [3]

BFG
Получи мастера спорта по шахматам, а потом и пиши...



Suntechnic   (2001-12-20 23:52) [4]

> Юрий Зотов © (20.12.01 21:08)
>И, даже если это у Вас получится, то будет ли Ваша программа играть хотя бы в силу... ну, скажем, второго-третьего разряда (то есть, на уровне среднего любителя)?

ИХМО навряд ли. Задача не просто ОЧЕНЬ сложная, а ОЧЕНЬ и ОЧЕНЬ сложная. "Научить" делать правильные ходы ещё куда ни шло, а вот играть... простой перебор тут мало поможет...



iZEN   (2001-12-20 23:53) [5]

Borland Pascal 7.0: в поставляемых примерах есть неслабая шахматная программа для Protected-режима DOS.



Oleg Gashev   (2001-12-21 02:48) [6]

Существует целая теория, занимающаяся проблемматикой написания алгоритмов для игры в шахматы. Основоположником ее был Ботвинник, написавший Каису- одну из первых шахматных игровых программ.

Сразу хочу заметить, перебор вариантов ничего не даст. Программа моментально будет проигрывать в стратегических построениях. Приведу Вам пример, показывающий некорректность этого алгоритма. Компьютер при оценки позиции просматривает дерево вариантов на N полуходов вперед. В одном из веток, на N полуходе получает преимущество в ферзя и идет на этот вариант, не зная о том, что N+1 полуход приводит к поражению, мату. Надо научить компьютер просматривать некоторые варианты не на N полуходов, а на N+p полуходов.

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

Оценка позиции через материальное преимущество ничего не дает. Первые программы, основываясь на таком принципе, моментально проигрывали. Нередко позволяли ставить мат, лишь бы увести из под боя ферзя. Материал был превыше всего.

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

С уважением, Олег.



Лисий Хвост   (2001-12-21 07:23) [7]

Oleg Gashev
Море ошибок в твоих высказываниях (ты уж извини, если сразу на "ты", у нас возраст сопоставим).
Во-первых, к "Каиссе" Ботвинник не имеет НИКАКОГО отношения. Ботвинник с группой разработчиков делал программу "Пионер" (название предложил Штильман, у Ботвинника была мысля назвать прогу "Пионер")



Лисий Хвост   (2001-12-21 07:26) [8]

"Каиссу" написали Донской со товарищи (Адельсон-Вельский и другие). Эта была советская программа, ДАЛЕКО не первая, но она была первой чемпионкой мира по шахматам среди ЭВМ.



Лисий Хвост   (2001-12-21 07:32) [9]

Ботвинник действительно предложил немало оригинальных идей (все-таки человек был с перерывами ЛУЧШИМ в шахматном мире около 15 лет), но он столкнулся с одной неприятной для себя вещью. Он понял, что не в состоянии передать машине весь свой громадный опыт, все свое виртуозное умение, все свои уникальные знания. Ему это давно вообще-то говорили Донской со товарищи, но он упорно не желал в это верить.
Для создания сильной шахматной программы сильный шахматист совсем не нужен. Нужны классные программисты, способные формализовать человеческие эвристики.



Лисий Хвост   (2001-12-21 07:36) [10]

Да, чуть не забыл :)
В основу практически всех существующих на данный момент шахматных программ заложен принцип ПЕРЕБОРА. Другое дело, это уже не тот ПОЛНЫЙ ПЕРЕБОР, что раньше. Применяется метод ветвей и границ (альфа-бета отсечение, открытие советского математика), применяется служба лучших ходов (изобретение советских программистов) и проч. эвристики.
Потому что ничего другого как перебор человечество машине предложить пока не могёт. Ну не могёт, и все тут!



Лисий Хвост   (2001-12-21 08:40) [11]

У Ботвинника была мысля назвать прогу "Человек", потому что он предполагал, что его программа будет играть, пользуясь человеческими методами.
Короче, ничего революционного в этом направлении со времен Клода Шеннона.



Oleg Gashev   (2001-12-21 14:58) [12]

> Лисий Хвост
Принял к сведению. О Адельсон-Вельском не слышал.



nikkie   (2001-12-21 16:11) [13]

>Лисий Хвост
альфа-бета отсечение - знаю, а что такое "служба лучших ходов"? расскажи, если не сложно, или ссылочку... кстати про "прочие эвристики" тоже интересно.



Лисий Хвост   (2001-12-22 11:35) [14]

Привет!
Службу лучших ходов придумали разработчики "Каиссы". Кстати, они же первыми использовали дебютную справочную. Все это (плюс еще разные фишки) в совокупности и привело к победе Каиссы в 74-м году на чемпионате мире по шахматам среди ЭВМ. Они (Адельсон-Вельский, Арлазоров, Донской и проч.) написали обо всем этом книжку "Машина играет в шахматы" (что ли?).
Ботвинник тоже много написал на эту тему ("От шахматиста к машине" и др.)
Из Инета скачал исходники (на Дельфях) шахмат, играет (как верно заметил Юрий Зотов) в силу среднего любителя. Могу кинуть, кому интересно.



Oleg Gashev   (2001-12-22 13:16) [15]

В BC++ есть исходники. Играет в силу второго разряда.




Форум: "Потрепаться";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.02.11;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.76 MB
Время: 0.047 c
1-32184           Guest.                2002-01-29 11:09  2002.02.11  
Новая папка


3-32124           EternalWonderer       2002-01-14 16:02  2002.02.11  
Работа с привилегиями ролей в Oracle.


4-32377           Art                   2001-12-10 15:57  2002.02.11  
Вопрос по процессам!??


7-32355           -=CrazyFish=-         2001-10-10 12:23  2002.02.11  
Инфракрасный порт


1-32229           hwber                 2002-01-26 15:04  2002.02.11  
QuickReport руссифмцировать Preview?