Имя: Пароль:
IT
 
Шахматные алгоритмы /Ботвинник/
0 NS
 
12.02.06
13:52
MMF сказал, что Ботвинник придумал особые алгоритмы, которые позволят программам намного сильнее играть в переборные игры.  Просто попались на глаза цитаты.
(Для сведения - программа Ботвинника "Пионер" так и не сделала ни одного хода, и есть мнение, что те этюды, которые программа решила - это просто поттасовка фактов. Правда любая современная программа есно решает их легко, и есно никаких "ботвинниковских алгоритмов не использует", и насчет его мнения, что программу чемпиона мира может написать только человек - чемпион мира по шахматам... Ну - автор единственной коммерческой программы в России, и сильнейшей программы в СНГ Сергей Марков - перворазрядник, и есно ни один чемпион мира по шахматам не написал ни одной играющей шахматной программы...)

http://atimopheyev.narod.ru/Mansurov/m_fischer4_p08-20.htm#Gik-2003
Для сведения Битман, Донской, Арлазоров и Адельсон-Вельский - авторы "Каиссы" - программы чемпионки мира по шахматам.
1 Nightwish
 
12.02.06
14:00
што то йа ни панимайу
2 NS
 
12.02.06
14:06
(1) А чего понимать? Ботвинник 20 лет писал шахматную программу, так ничего и не написал. Говорят о каких-то его идеях и методах - да нет их и не было. Ни одной идеи и ни одного метода. 3000 ошибок в программе - это его фраза. ;-)
Хотя даже не смешно... Сначала над ним смеялись, потом просто стали игнорировать, а сейчас некоторые считают, что Ботвинник действительно чего-то сделал. Да не сделал он ничего, кроме того что стал сам трехкратным чемпионом мира. А "Пионер" (его программа) так и не заиграл, и не сделал ни одного хода.
3 Трезвый взгляд
 
12.02.06
14:28
Приносит однажды Ботвинник свою бету Арлазорову для прогона. Тот её потестил и говорит: "Мужик, а, мужик. Слышь, да тут ботва какая-то". Обиделся Ботвинник и не стал прогу релизить.
4 NS
 
12.02.06
14:30
(3) Адельсон-Вельский после прочтения трудов Ботвиника попросил оного его больше не беспокоить ;-) Это факт.
5 MMF
 
12.02.06
18:15
(0) Тогда я просто вспомнил о прочитанной мною его книжке, никаких алгоритмов там не публиковалось, но описывалось интересно :-) И я не говорил о переборных играх в целом, а только о шахматах.
Ошибка в алгоритме хождения короля (в статье по ссылке: "Во время анализа ПИОНЕРом позиции из партии Ботвинник—Капабланка [ АВРО-турнир, 1938 г. — Е.M.] чёрный король вдруг стал ходить, как... конь!") - это сильно, если уж в этом ошиблись, то что говорить о нерожденной программе в целом.
С другой стороны, человек при игре не перебирает варианты, значит, потенциально, существует другой подход к игре в шахматы.
6 Obed
 
12.02.06
18:19
(5) "С другой стороны, человек при игре не перебирает варианты"
хех, машина вроде интуиции не имеет
7 MMF
 
12.02.06
18:23
(6) интуиция - это просто слово, которым обозначают неизвестный пока алгоритм поиска решения.
8 NS
 
12.02.06
18:24
(5) Человек именно перебирает варианты.
Отличие игры машины от игры человека в том. что человек лучше оценивает позицию, и более четко определяет где необходимо "посчитать подальше", а где сократить, или "прекратить перебор" (это есть и в программах, но есно программа сокращает/удлиняет варианты намного хуже), а программа и компьютеры в замен - имеют намного большее быстродействие и скорость перебора вариантов.
9 NS
 
12.02.06
18:36
(5) Так дело в том, что Ботвинник даже примерно не представлял, как программы играют в шахматы. ;-) Иначе бы 20-лет, чтоб программа хоть как-то начала играть в шахматы ему-бы хватило.
И Ботвинник не понимал еще одной вещи, на которую ему указал Донской - и любая программа, и человек используют полный перебор!!! А Ботвинник просто бредил!
Адельсон-Вельский был великим математиком. А Доктора наук Ботвинника, как и все остальные серьезные разработчики шахматных программ, и даже программисты (никто из серьезных программеров в его команду идти не хотел, а кто случайно в ней оказался - быстро уходили) всерьез не воспринимал, и попросил письма бредовые ему больше не писать.
10 Wasya
 
14.02.06
15:03
(8) Человек оценивает позицию совсем не так как программа. Никому в голову не придет подсчитывать интегральную оценку позиции в каких то условных единицах.
Человек занимается скажем так распознаванием образов.
Среди шахматистов ходит поговорка. Комбинацию не надо считать - ее надо видеть

Не хочется верить, что единственное решение это полный перебор вариантов. Шахматами занимаются программисты, а надо чтоб занимались математики
11 Волшебник
 
модератор
14.02.06
15:22
(9) Разве человек при игре в шахматы использует полный перебор? Никогда не поверю.
12 NS
 
14.02.06
15:24
(11) Да, полный перебор.
(10) Человек так-же оценивает позицию, как и машина, только лучше...
Почитай постулаты Стейница, и как исходя из них строится оценка позиции. Я тебе скажу - как сумма позиционных преимуществ ;-) Так же делает и машина. Человек привязывает оценку к вариантам, но машина тоже считает варианты, и тоже продляет их в интересных местах, только менее четко, чем человек.
13 NS
 
14.02.06
15:27
(11) Вопрос только в том, чтоб понять что такое "полный перебор" с точки зрения шахматного программирования. Ты например не знаешь - так как не вдавался. Ботвинник вдавался - но извините, кесарю - кесарево... За двадцать лет он не смог создать играющую программу, и не понял - что обе схемы Шеннона идентичны, кроме глупого предложения просматривать на определенном уровне ЖЕСТКО ФИКСИРОВАННОЕ КОЛИЧЕСТВО ХОДОВ. И современные программы и человек так не делают.
14 Волшебник
 
модератор
14.02.06
15:31
(12) Человек не перебирает позиции. У него просто нет для этого мощностей и скорости. Нейроны в миллионы раз медленнее электронов. Человек даже не рассматривает бессмысленные ходы (или малозначащие ходы), а машина вынуждена их рассматривать на определенную глубину.
15 Волшебник
 
модератор
14.02.06
15:33
(14)+ Т.е. он перебирает и оценивает, но оценке подвергаются очень небольшое количество позиций и сама оценка имеет другой характер - аналоговый, а не цифровой.
16 NS
 
14.02.06
15:35
(14) То есть ты будешь рассказывать шахматисту перебирает ли он позиции?
Никто кстати не говорил про перебор позиций. Перебираются ходы, и смотрится изменение в позиции, но - Программы делают тоже самое. ;-)
Человек рассматривает бессмысленные и малозначащите ходы, просто позиции после них считает заключительными, и обрывает вариант. Эти же методы используют и программы.
17 Волшебник
 
модератор
14.02.06
15:36
(16) Ну я тоже шахматист немного. 2-й разряд.
18 NS
 
14.02.06
15:36
(15) И чем эта аналоговая оценка отличается от цифровой? Любой профессионал шахматный покажет тебе на доске все позиционные признаки (поля, группы полей, слабые пешки и фигуры и т.д.) которые сформировали его оценку.
19 NS
 
14.02.06
15:38
(17) Угу у нас разница в силе всего... в 800 пунктов Эло. Всего лишь четыре рязряда ;-)) в полтора раза больше, чем между мной и Каспаровым. И шахматистом второй разряд назвать нельзя никак...
20 Волшебник
 
модератор
14.02.06
15:38
(18) Бывают знания, которые сложно формализовать и не всякий профессионал (эксперт в своей области) может выразить словами свои мысли, чувства.
21 Волшебник
 
модератор
14.02.06
15:38
(19) Ну я и не настаиваю. Я же добавил слово "немного".
22 NS
 
14.02.06
15:39
(20) Ничего подобного. В любой шахматной школе преподают оценку позиции по Стейницу, и четко формализуют позиционные признаки.
23 Волшебник
 
модератор
14.02.06
15:40
(22) В любом медучилище тоже четко формализуют признаки каждого заболевания, но даже профессиональный врач иногда ставит неверный диагноз.
24 NS
 
14.02.06
15:45
(23) Ну, ставит, а при чем тут отличия игры программы от человека? Я вроде так и сказал, что человек лучше оценивает позицию, но хуже считает варианты, хотя при этом лучше разбирается с продлениями. Итог получается неутешительный. Если лучшие программы сейчас играют на рейтинг 2900, то сильнейшие шахматисты на 2800. Разница в пол-разряда в пользу персоналок. Несмотря на то, что человек с компом всегда играет в антикомпьютерные шахматы - бьет по слабым местам программы (сводит к позиционным, маневренным позициям, желательно с запертым центром, либо переводит игру в эндшпиль, где большее значение имеет опыт и специфические шахматные знания (то есть сказывается лучшая оценка позиции))
А насчет оценки - специфические человеческие знания, например правило квадрата, либо крайняя пешка не с тем слоном - во все сильнейшие программы забиты. Просто не забиты более сложные - ибо трудоемко, да и силы особо не прибавит.
25 NS
 
14.02.06
15:46
(+23) Я не увидил ни одного аргумета, что человек по-другому оценивает позицию.
26 Волшебник
 
модератор
14.02.06
15:50
(25) Но у тебя и доказательств идентичности этих алгоритмов тоже нет.
27 NS
 
14.02.06
15:53
(26) Аргументов больше чем у тебя и Ботвинника. Так я и сам шахматист, и программа играющая у меня есть (и не 20 лет ушло на её написание с толпой программеров, а месяц, и в одиночку), и алгоритмы ведущих программ знаю.
28 NS
 
14.02.06
15:55
И тем более я разделяю точку зрения Российских столпов в Математике и шахматном программировании. Ссылки на их высказывания и отношение к Ботвиннику приведены. А Ботвиннику еще бы сто лет дали, программа бы всё-равно не заиграла. Ну не дано...
29 Волшебник
 
модератор
14.02.06
15:57
(27,28) В данном вопросе я доверяюсь твоему опыту. Но шахматы - мир придуманный, искусственный. А как насчет мира реального?
30 NS
 
14.02.06
16:01
(29) Даже Ботвинник считал, что успехи в шахматном программировании помогут в создании ИИ и ИР. В реальном мире для жизненных задач есно шахматные алгоритмы используются.(перебор иногда нужен, и оценка тоже) И, как я уже говорил - задачи ИИ и ИР - тоже задачи принятия решения.
31 Волшебник
 
модератор
14.02.06
16:05
При применении шахматных алгоритмов с реальной жизнью они сталкиваются со следующими факторами:
- непрерывность (нет клеток, нет ходов - плавное изменение ситуации)
- неполнота правил (человек сам не знает, как устроен мир или его кусочек)
- вероятности, случайности
- неожиданные эффекты (например, вы поставили мат, а вам набили морду)
32 NS
 
14.02.06
16:15
(31)
- Плавное изменение ситуации, в таких задачах используются те-же методы, просто дробят плавность.
-Шахматная программа тоже не знает чего она хочет ;-) Улучшение позиционной оценки не цель шахматной игры.
- вероятности, случайности - карточные игры и нарды используют похожие алгоритмы.
- неожиданные эфекты - то же самое. Вы съели фигуру, а вам мат в два хода.
Шахматные алгоритмы используются ведь не только именно в шахматах, а так-же и в пошаговых играх (WarGame, пошаговые стратегии, например Цивилизация), в которых присутствуют все четыре указанных пункта ;-)).
33 Волшебник
 
модератор
14.02.06
16:34
(32) а можно ли что-нибудь из шахматных алгоритмов применить для ТелепатБота? например, мат - это точный ответ на вопрос, съеденная фигура - это ответ в тему, позиционное преимущество - это молчание, потерянная ладья - это ляп (ответ невпопад).
34 NS
 
14.02.06
17:35
(33) Телепат бот это не переборная задача. Это задача распознавания образов (чтоб распознать вопрос). Это другой кусок ИИ - для связи с внешним миром.
35 NS
 
14.02.06
17:35
(+34) А не принятия решения.
36 Волшебник
 
модератор
14.02.06
17:38
(34) Можно перебрать все варианты (статьи) и выбрать тот, который имеет наибольшую оценку или промолчать, что тоже имеет свою оценку (аналог пропуска хода в некоторых карточных играх).
37 Волшебник
 
модератор
14.02.06
17:38
Вся фишка - в оценочной функции.
38 NS
 
14.02.06
17:52
(36) Это не тот перебор, что в шахматах ;-)))
39 Волшебник
 
модератор
14.02.06
17:57
ТелепатБот проще шахмат тем, что:

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

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

ТелепатБот похож на шахматы тем, что:

- есть огромная база вопросов и ответов, по которой можно учиться. Так же и в шахматах есть миллионы сыгранных партий, которые можно анализировать.

- типичные вопросы новичков аналогичны типичным дебютам, их можно сразу заложить в базу, чтобы даже думать не нужно было

- оба мира (1С:Предприятие и шахматы) - искусственно выдуманные людьми, со своими правилами, довольно хорошо формализуемыми.

ТелепатБот сложнее шахмат тем, что:

- вопрос (ситуация, позиция) задается в неформальном виде, требуется лингвистическая обработка

- оценочная функция для ТелепатБота не так хорошо формализована, как для шахмат. Что-то еще даже не изобретено

- для правильного ответа на вопрос требуется понимание смысла и нет гарантии, что переборные алгоритмы с крутейшей функцией оценки будут эффективны
40 NS
 
14.02.06
18:04
(39) Шахматные программы НЕ обучаются.
    Последствия ошибок в действиях - не влияют на алгоритм выбора хода.
    В шахматах для нормальной игры (на уровня сильного любителя) достаточно оценить несколько тысяц позиций.
    Оценочная функция для шахмат никем не формализована и постоянно изобретают что-то новое. Единственно что в ней
41 Волшебник
 
модератор
14.02.06
18:05
(40) ТелепатБот тоже может обучаться, а может не обучаться. Обучение лишь помогает упростить (ускорить) оценочную функцию и/или сократить количество оцениваемых вариантов.
42 NS
 
14.02.06
18:06
понятно - так это принцип сформулированный еще Шенноном. Сумма весов - так это применяетстя везде.
Переборные алгоритмы? Перебрать все ветки и статьи - это не переборные алгоритмы ;-))) Это простой цикл.
43 NS
 
14.02.06
18:07
(41) Шахматные программы не обучаются никогда!!! ;-) Есть только изменяемые (по результатам партий) веса ходов в дебютной библиотеке, но это не самообучение.
44 Волшебник
 
модератор
14.02.06
18:07
(42) Ну сделай из них дерево и перебирай веточки и листочки. Суть не в этом.
45 Волшебник
 
модератор
14.02.06
18:07
(43) Не путай обучение и самообучение. Я говорю об обучении.
46 NS
 
14.02.06
18:08
(44) Зачем придумывать проблему там, где её нет?
Задача шахматной программы не обойти дерево, а проблема в его формировании!!!!
47 NS
 
14.02.06
18:08
(45) Шахматные программы и не обучаются, и не самообучаются.
48 Волшебник
 
модератор
14.02.06
18:09
(47) А откуда берутся весовые коэффициенты каждого фактора, используемые при оценке позиции?
49 Волшебник
 
модератор
14.02.06
18:10
(46) Дерево сформировано. Проблема в том, чтобы обойти его в правильном порядке по перспективным веточкам на наибольшую глубину.
50 NS
 
14.02.06
18:13
(49) Это где? В шахматных алгоритмах никакого дерева нет, если мы куда-то пошли - то этим формируем дерево.
51 Волшебник
 
модератор
14.02.06
18:14
(50) Ну это вопрос терминов. Я это называю "развертывание узлов".
52 Волшебник
 
модератор
14.02.06
18:15
(50) Есть одно большое дерево, содержащее все возможные ходы и все позиции в мире.
53 Wasya
 
14.02.06
18:33
Позицию можно оценивать интегрально или параметрически.
Скажем у позиции есть N свойств
1. Интегральная оценка: Каждому свойству дается вес и оценка. Все это суммируется. Позиция А лучше позиции Б если суммарная оценка позиции А больше позиции Б.
2. Параметрическая оценка: Сравнивается каждое свойство Позиции А и Б.
Позиция А считается лучше позиции Б если все ее свойства лучше чем у позиции Б.
Если часть свойств лучше у позиции А, а другие у позиции Б. А и Б несравнимо - нельзя определить что лучше.

Человек использует вариант 2.
Для человека оценка позиции не главное. Главное генерация идей.
Алгоритм человека.
1. Распознавание образов
2. Генерация идей
3. Разработка путей реализации идей
4. перебор вариантов используя параметрическую оценку.
54 NS
 
14.02.06
19:41
(53) Ну ты даешь - Почитай постулаты Стейница. Не бывает позиций у которых у одной стороны одни плюсы, а у другой одни минусы, точнее бывают - но это выигранные позиции ;-)). Человек оценивает все позиции.
И оценка бывает и чуть лучше и чуть хуже, и лучше и выиграно, и неопределено (в острых позициях), человек практически оценивает по тем-же свойствам что и программы, но более гибко меняет веса взависимости от свойств позиции.
55 NS
 
14.02.06
20:05
(53) Если найдешь - то очень советую почитать -
Арлазоров, Битман, Донской, Адельсон-Вельский "Машина играет в шахматы"
56 Скользящий
 
14.02.06
20:39
В одной шахматной книге читал про один любопытный эксперимент (у самого разряд, правда всего-навсего третий). Крупным гроссмейстерам показывали шахматную позицию на долю секунды. Она просто мелькала перед глазами. После этого они должны были дать оценку позиции, кто выиграет, черные или белые.
В результате, гроссмейстеры давали оценку с точностью 80%.
57 NS
 
14.02.06
22:25
(56) Даже намного меньшего уровня шахматист способен полностью схватить (запомнить) позицию за очень короткое время.
58 avm-nn
 
15.02.06
01:15
(48) Из ранее известного анализа. Самые простые параметры позиции: материальный перевес, владение центром, наличие разноцветных слонов, наличие слонов или коней в открытой или закрытой позиции, владение диагоналями, свободными линиями.
(56)(57) Это зависит от зрительной рамяти, а не от разряда. Алехин тогда фашистов в слепую вон как замочил.

Насколько я помню ранее прочитанное, то алгоритмы просчета хода строятся примерно так. Подробный анализ на несколько ходов (вроде бы 2-3) и оценка всех конечных позиций по параметрам. Если нет явно удачного решения, то глубина просчета увеличивается. но отбрасываются ходы, ухудшающие положение машины. Плюс к этому в самом начале используется библиотека дебютов и в процессе игры библиотека стандартных положений и комбинаций.
59 avm-nn
 
15.02.06
01:20
Прим. Не увлекался бы в свое время шахматами, подумал бы, что на форуме новый бот - БотВинник.
60 avm-nn
 
15.02.06
01:21
(7) с острия по поводу интуиции:
Молодой человек говорит своей маме:
- Мама, сегодня ко мне в гости придут три девушки, и на одной из них я собираюсь жениться. А ты постарайся угадать, на какой именно.
После того как девушки ушли, он спрашивает у мамы:
- Ну и как ты думаешь, на ком?
- Ясное дело – на той, что сидела в середине.
- Вот это да! И как же ты догадалась?
- Да так, интуиция: она уже сейчас меня раздражает.
61 NS
 
15.02.06
11:06
(58) Нет, не так считают программы. А вот оценка у них действительно такая-же - владение центром, активность фигур, деплассированные фирупы, пешечная структура, владение открытыми линиями, слабые и сильные поля, защищенность короля. Идут по пути моделирования оценки позиции человеком.
У программ нет библиотек стандартных комбинаций, стандартных положений есть (в процедуре оценки позиции) - для определения деплассированных (запертых фигур), и для стандартных построений, например для черных Пешки на с5 и d5, конь на с6 - дает небольшой плюс позиции (для правильного развития в дебюте)
Как считают программы. Утрирую до невозможности, и уберу все продления и отсечения.
Используют метод ветвей и границ (точнее более продвинутые его аналоги), причем известно, что чем лучше отсортированы ходы (сначала сильные (опровергающие), а потом только слабые) - тем меньше требуется просмотреть позиций для рассчета на заданную глубину. По достижении заданной глубины перебора, для примера программе разрешают только пустой ход (не ходить, и после этого оценивается позиция), либо взятия (метод называется ФВ, без него программа будет просто зевать материал на разменах, так как посчитали допустим на два полухода - соперник сделал ход, мы взяли пешку - у нас лишний материал, а что следующим ходом противник берет ферзя - программа не увидит).
Сначала программа делает перебор на один полуход + ФВ, и запоминает опровергающие ходы для ускорения перебора на следующей ступени, потом на два полухода+ФВ и т.д. пока алгоритм не решит, что время на обдумывание хода вышло.
В среднем, в мительшпиле программы считают на 15 полуходов и дальше (8 ходов) - (это минимальная длина варианта в основном варианте - реально она значительно больше, так как сюда прибавляется ФВ и продления на разменах и взятиях, то есть реально программа считает на 10 ходов (20 полуходов) и дальше, и это самый короткий!!! вариант в PV (основной) ветке)
Все отсечения происходят только в неосновных ветвях (не PV), причем с проверкой (верификацией), и восстановлением глубины перебора в случае опровержения (нестабильности).
62 NS
 
15.02.06
11:17
(+61) Ходы не отбрасываются никогда, просто в неосновных вариантах в некоторых позициях, с явно перекошенной оценкой (большое преимущество одной из сторон по сравнению с границами) принимается решении об обрыве перебора, либо сокращении глуюины перебора, но перебор остается полным, так как при увеличение общей глубины перебора эта позиция в любом случае будет рассмотрена дальше, то есть при большей глубине решение об обрыве будет принято позже (тоже утрированно объяснил, так как для обрыва используется метод пустого хода, дастаточно долго обяъяснять его принципы и принципы его проверки (верификация, делается для исключения пустого хода в позициях, в которых возможен цуцванг))
63 avm-nn
 
16.02.06
07:55
(61) Не знаю как сейчас, но раньше читал, что библиотеки дебютов были.
64 Vint Kras
 
16.02.06
08:05
я не шахматист... раз играл с человеком, он не видел доски, я на доске играл, он меня сделал....
65 Vint Kras
 
16.02.06
08:07
+64 во время игры он читал книгу и ни разу не глянул на доску...
66 NS
 
16.02.06
08:39
(63) А я не и говорил что дебютных библиотек нет.
Дебютная библиотека есть даже у моей поделки на 1С...
67 Волшебник
 
модератор
16.02.06
09:09
(65) Может быть это был Алехин?
68 NS
 
16.02.06
09:14
У меня знакомый перворазрядник играл 3 партии вслепую одновременно абсолютно без напряга. Для меня , например, это достаточно тяжело.
69 HagMan
 
16.02.06
13:20
Эх Вы...
Перебор - не перебор...
Ни один шахматист не пользуется перебором для игры. Да и не только шахматист... В любой области любой человек при нахождении решения использует перебор тем реже, чем больше опыт у него в этой области.

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

Когда любой человек занимается чем-то, то он учится и приобретает опыт в этом деле. И этот человек начинает использовать иной метод решения нежели простой перебор. Метод решения основанный на опыте.
Следует отметить, что метод решения, основанный на опыте, менее надежен нежели перебор, т.к. не гарантирует идеальности найденного решения. Однако в жизни часто такого решения бывает достаточно.

Когда я играю в шахматы, то я не перебираю ходы. Я просто ВИЖУ некую красивую комбинацию. Вижу, что эта комбинация красивая. И только потом начинаю осмысливать какие ходы нужно сделать, чтоб на доске реализовалась эта "красота". Перебором я начинаю пользоваться только тогда, когда ход противника либо вываливается из моей "красоты", либо нарушает ее. Тогда я понимаю, что моего опыта не достаточно, чтобы понять противника и использую универсальный алгоритм, а именно перебор.

Да собственно и программы я пишу так же. (И Вы все наверняка тоже).
Вы сначала нутром чуете алгоритм, всю полседовательность действий. И только потом начинаете реализовывать все это в конкретных командах.
70 NS
 
16.02.06
13:22
(69) Почитай комментарии каспарова ко всем партиям матчей с Карповым - одни варианты. я тоже постоянно считаю. Даже когда человеку кажется что он составляет план или созерцает - он всё-равно считает. Хотя - на уровне разрядов - человек может и не считать... Второразряднику может казаться, что когда у него был третий, то он считал размены, а сейчас их чувствует - типа крутой. ;-)) Хотя на самом деле всё-равно считает.
71 HagMan
 
16.02.06
13:32
(70)Для меня перебор - это когда представляешь один ход - оцениваешь, потом след ход оцениваешь и т.д.
Т.е. работа идет от хода к оценке, потом к результату. Так вот результат рождает некое ощущение.
И тут начинается работа опыта.
Сначала есть некое ощущение результата, потом оценка, и только потом конкретная реализация.

Насчет коментариев Каспарова... Я же написал, что использование опыта не дает идеального результата. Часто опыт наоборот "затмевает" правильное решение. Тогда и нужно использовать перебор. Чтобы расширить свой опыт.
По-этому человек комбинирует оба способа принятия решений.
Опытом достигается скорость нахождения вариантов. Перебором - поиск "подводных камней".
72 NS
 
16.02.06
13:33
(+70) А на основываясь на опыте - человек оценивает позицию, и выбирает что именно считать.
73 NS
 
16.02.06
13:35
(71) Ничего не понял, что ты сказал. Чтоб сделать ход - человек должен знать какой ход именно он хочет сделать. То есть он Этот ход перебирает!!!!
А дальше он может выбрать этот ход исходя из оценки получившейся позиции, либо продолжить считать дальше (он походит так я отвечу так, либо дальше я буду делать так, не привязываясь к ходу соперника - в шахматных программах это метод пустого хода.)
74 Волшебник
 
модератор
16.02.06
13:36
(72) Есть математические гении, которые мгновенно выполняют в уме сложные вычисления (перемножают, возводят в степень, берут корни). Люди-калькуляторы. Они говорят, что они ВИДЯТ ответ. Но мы-то знаем, что они "считают". Просто этот счет немного другой. И вовсе необязательно они раскладывают в ряды. У них вполне может быть какой-то другой способ.
75 NS
 
16.02.06
13:37
(74) Я с этим и не спорю. Я наоборот говорю - когда человек думает, что он видит - просто он быстро считает...
76 Guk
 
16.02.06
13:37
(74) А еще есть люди, которые шкафы взглядом двигают...
77 Волшебник
 
модератор
16.02.06
13:38
(73) Человек может добавить к этому следующие факторы: "добавляю-ка ему остроты, пощекочу нервы", "рискну пешкой, а там будь что будет, авось не заметит", "не буду пока ничего делать, подожду пока этот второразрядник сам прозевает слона".
78 Волшебник
 
модератор
16.02.06
13:42
(77)+ Я хотел сказать, что человек не просто оценивает данную конкретную позицию, а имеет еще и СТРАТЕГИЮ, которая распространяется на большее количество ходов, чем глубина просмотра. Например, начали играть в атакущем стиле (гамбит, какой-нибудь), но натолкнулись на глухую оборону и сами перешли к позиционной борьбе.
79 HagMan
 
16.02.06
13:46
(73) Нет не перебирает.
Ситуация - художник хочет нарисовать некую линию на картине.
Вопрос - Он что, перебирает в уме все возможные варианты нарисования линии?

Ответ (ИМХО) - Нет.
Почему - Сначала он (опираясь на свой опыт) ВИДИТ, что линия нужна в этом месте и именно такая. Без всяких переборов. Потом уже он начинает делать перебор вариантов в некотором приближении к тому, что он "узрел" опытом и находит идеальный.
80 NS
 
16.02.06
13:51
(77) Ну и что? Какая разница что человек прибавит? Он всё равно оценивает позицию в которой есть материальная и позиционная составляющая. Если он отдает пешку, то значит видит взамен позиционные плюсы её компенсирующие. Плюс он может любить острые позиции, и поэтому на них идти, но программы делают так-же ;-)) например против человека его ферзя ценят слабже чем своего, что не идти в эндшпиль (не разменивать ферзей), а если и идти, то с улучшением своей позиции. Так же может дваться плюс одной из сторон в случае острой позиции.
(78) Это человеку кажется. Программа так-же если у неё лучше - атакует, если хуже - защищается - не приводя пространных рассуждений, просто в худших позициях агрессивность приводит к еще большему ухудшению позиции. СТРАТЕГИЯ зависит от позиции, и она тут не при чем - человек как считал, так и считает.
81 NS
 
16.02.06
13:52
(79) Не путай художника и шахматы. И ты сам сказал - потом перебирает.
Мне интересно... Расуждения тянут... На третий разряд - может оставим расуждения о способах принятия решений шахматистам?
82 HagMan
 
16.02.06
14:06
(81) Интересно, неужели ты правда думаешь, что человек-шахматист мыслит иначе, чем человек-художник. Не уж то шахматист принимает решения иначе нежели художник.
По-моему одинаково. Абсолюно. По-этому отдавать шахматистам право решать как принимать решения не верно.
Просто в шахматах перебор вариантов еще имеет какой-то шанс быть примененным на практике, в написании картины нет. В первом случае хоть вариантов и огромное колиство, но все-таки их меньше и их число конечно, нежели бесконечная вариация в случае написания картины.

Кстати, когда-то читал маленький фантастический расказик, где обыгрывалась ситуция, когда один математик нашел формулу, по которой можно было расчитать "идеальную" линии и соответсвенно сделать идеальной любую картину.
Это я к тому, что подобные алгоритмы - это попытки объяснить не только как шахматист принимает решения, но и художник. Т.е. как Человек принимает решения, а не какая-то разнавидность человеков.

А различия шахматиста и художника лишь в том, что у одного больше опыта в шахматах, а у другого в написании картин.
Использууя же метод перебора шахматист сможет нарисовать прекрасную картину, а художник выиграть любую партию. Вот только вопрос в том, хватит ли у них жизни на это?
83 Волшебник
 
модератор
16.02.06
14:07
(80) Он считает, но мы не знаем КАК. Мы лишь смогли формализовать некоторые факторы, которые реализовали в алгоритмах.

Аналогично изобрели нейронные сети как аналог естественных нейронных сетей в мозге человека. Но это лишь математическая абстракция, возможно, не имеющая ничего общего с реальной работой мозга. В реальности может оказаться, что вся "вычислительная обработка" сигналов в мозге реализуется не в нейронах, а в синапсах, а нейроны лишь хранят полученную информацию. Но это не сделает бесполезными искусственные нейронные сети и не обесценит достигнутые с помощью этой абстракции реальные результаты их применения.
84 NS
 
16.02.06
14:08
(82) Видишь ли... Если читал всю ветку - то наверно заметил, что я шахматист профессионального уровня. Да, шахматист думает иначе. Художник не играет в игру двух соперников... И не перебирает (считает) варианты.
85 NS
 
16.02.06
14:11
(83) Станислав - еще раз - я шахматист, причем достаточно высокого уровня. Я мало того, что утверждаю что я считаю варианты, я могу это подтвердить приведя эти варианты на бумаге. И все остальные шахматисты тоже... Посмотри ЛЮБУЮ прокомментированную партию. Вариантов два - ход - оценка (перебор на один полуход) или варианты подлинее и оценка. По-другому не бывает. Различие только в том, что некоторые комментаторы прописываят оценку подробно (разжевывая по пунктам), а некоторые кратко... "Небольшой перевес белых" и всё...
Некоторые приводят план - ходы только одной стороны - но я уже сказал - см. в программах метод пустого хода.
86 MMF
 
16.02.06
14:32
(85) ок. Шахматист делает полный перебор. Как тогда он отсекает в самом начале анализа подавляющее большинство возможных вариантов ходов?
87 HagMan
 
16.02.06
14:34
(84) Тогда вопрос - Ты что же никогда не сможешь научится рисовать? Раз ты шахматист.
Если ты считаешь, что не сможешь, то ты не прав. Стоит тебе только попробовать и все получится.
И шахматист и художник мыслят ОДИНАКОВО. Они оба человеки.

(85) Понимаешь в чем тут дело. Когда человек приобретает достаточно большой опыт, то он уже может позволить себе совмещать процесс принятие решений и получения нового опыта. Пример, тот же художник... Так вот - этот художник сидит себе днем в каком-нибудь парке и рисует портреты прохожих. Рисует быстро, в несколько движений руки. Не многие способны нарисовать хороший портрет за 5 минут. Как ты думаешь, сильно ли он просчитывает варианты написания каждой линии? Наверняка почти не считает. Этот художник использует весь свой полученный опыт для получения результата. Потом он приходит домой и останавливается рядом с картиной, которую пишет уже год. Вот там он просчитывает каждый штрих. А часто и перерисовывает линии заново. Он УЧИТСЯ одновременно с написанием этой картины.
Так же и ты играя в шахматы...
Задам вопрос: Играл когда-нибудь блиц? Если играл, то тогда скажи - много ли вариантов ты перебирал прежде чем сделать ход? Наверняка очень и очень мало. Ты просто делал ход использую полученные ранее наработки и опыт. Играя длинную партию ты, имея достаточный опыт, можешь позволить себе УВИДЯ некий вариант развития партии произвести процесс обучения себя же, т.е. просчитать, то с чем ты возможно не встречался ранее. И этот просчет возможных вариантов на самом деле говорит о твоей высокой квалификации. Но это не значит, что ты перваначальное направление своих мыслей "просчитал". Ты просто можешь позволить себе обучатся одновременно с игрой.

PS 6 лет назад я подтвердил 1 разряд. Играл чисто любительски и не стремился достич особых профессиональных результатов. По-этому хоть и играл на уровне МС или КМС (не по моим оценкам, а моих партнеров по игре) рейтинг имел довольно низкий. Потом забросил. Но от этого не перестал быть шахматистом.
88 NS
 
16.02.06
14:46
(86) Быстро мысленно делает все ходы, и принимает решение что позиция его не устраивает (перебор на один полуход), но заметь - разницы в том, что он делает их и смотрит позицию, и просто не делает их по каким-то причинам нет никакой абсолютно!!!! Какая разница программе оценит она 1000000 позиций или 1000040?
Я говорю о том, что ботвинник хотел сразу включить в рассмотрение только нужные ходы, но кто мешал ему сначала сделать Этот ход, а потом отказаться от продолжения???? Причем шахматы тонкая игра, и еще Адельсон-Вельский писал что во многих позициях лучший ход слишком странно связан с этой позицией, и его нужность определяется только в процессе перебора вариантов. То есть если мы снимаем что-то с доски в любом шахматном этюде - он пропадает...
И программа которая смотрит не все ходы - сильно играть не будет, так как в некоторых позициях - она просто будет пропускать нужное, сильнейшее продолжение.
89 NS
 
16.02.06
14:50
(87) Блицер, тем более отличный блицер очень быстро считает варианты.
Он просто считает что видит, я об этом уже говорил. Потому что варианты проносятся молниеносно. Если ты видел профессионалов - то наверно видел, как после партии в блиц они сыпят вариантами.
А то что говорят - говорить можно всякое... Редко блицер не имеющий опыта турнирных партий в состоянии получить приличный рейтинг. Хотя-бы те же 2300. (Ты говорил, что сила МС ;-))
90 NS
 
16.02.06
14:51
(+89) и еше раз - не подумав над ходом ты не можешь сделать его - потому что ты его не рассматривал. Чтоб сделать ход нужно его рассмотреть, или хотя-бы представить как будет выглядеть позиция после него.
91 HagMan
 
16.02.06
15:07
(89) И тут ты не прав.
Ты забываешь о том, что любой человек ПОМНИТ, то что сделал. И когда блицер принимает решение - это не значит, что он его просчитал. И когда через пару ходов этот игрок получает результат его решения и результат его не устраивает, он начинает искать (возможно перебором) иное решение, т.е. он учится. Непроизвольно. И чем выше класс этого блицера тем больше "ресурсов" он может переключить на обучение. Так же и с ходами противника.
Ты же сам сказал, что сыплют они ходами и вариантами ПОСЛЕ партии. Во время партии у них нет на это времени.

(90) В этом своем сообщении ты почти натолкнулся на истину (как мне она видится). Я вот о чем - Для того чтобы сделать ход, тебе не нужно представлять этот ход или его просчитывать. Ведь твоя цель не ход, а та позиция, которая сложится после него. Так что тебе достаточно представить позицию, а потом получить ход, который приведет к этой позиции. В какой-то момент полученный опыт и начинает работать таким образом, что человек "ВИДИТ" результат (в шахматах - позицию) до того как он осмыслил и просчитал ход. И потом уже основываясь на опыте он идет от обратного, находит ход, который привет к этой позиции.
Опыт позволяет "увидеть" результат сразу, понять, что результат достижим. И только потом начать осмысливать ходы, которые приведут к такому результату.
Сделать первый шаг, т.е. увидеть результат может только опыт. Понимание достижимости результата скорее всего происходит параллельно с использованием как опыта, так и перебора, но больше опыта. Осмысливание конкретного хода возможно просиходит с еще большим участием перебора. Т.к. конкретный ход это не цель - это средство достижения результата.

Именно такой подход позволяет человеку отсечь огромное количество мертвых вариантов даже не прикасаясь к ним мысленно.
92 Wasya
 
16.02.06
15:08
Я не понимаю почему мы решили написать програму думающую как человек. Разве машина устроена как человек? А ездит гораздо быстрее. Надо рассматривать шахматы как математическую задачу.
NS у тебя есть ссылки, где бы рассматривались шахматы именно как математическая задача? Скажем шахматы это NP полная задача? Или она сложнее задачи о рюкзаке?
93 HagMan
 
16.02.06
15:14
NS
Спасибо за интересную беседу.
Честно скажу, Ваши слова не переубедили меня. И даже наоборот в чем-то подтвердили мое понимание "мыслительного процесса" в плане использования и накопления опыта.
Ведь на Ваши слова, что человеку КАЖЕТСЯ, что он просто видит, я так же могу возразить, что ему кажется, что очень быстро просчитывает, а на самом деле как то иначе оценивает и отсекает варианты.

А сейчас мне пора домой.
Ваш ответ (если он будет) я прочитаю завтра.
До свидания.
94 NS
 
16.02.06
15:16
(91) Не поверишь - программа тоже помнит, что она считала раньше, и выуживает информацию из Хеш таблиц. Видишь ли ты позицию после хода, или сам ход - это одно и то-же - демагогия.
"И когда блицер принимает решение - это не значит, что он его просчитал. И когда через пару ходов этот игрок получает результат его решения "
Ты случайно только что не сказал, что блицер посчитал на два хода????
(92) Конечно есть. Шахматы это NP полная задача. Это задача теории расписаний.
Почему как человек? Программа играет как играет, просто оказывается, что человек принимает решение так-же...
95 avm-nn
 
16.02.06
21:13
NS
Не обязательно действует перебор. Используются наработанные шаблоны. Те же принципы быстрее развивать фигуры, занимать центр ... они же не текущим перебором обусловлены. Это стереотипы, которые выработаны массой людей за долгие годы. Так и решение сделать тот или иной ход порой стереотипом определяется, только индивидуальным.
96 NS
 
16.02.06
21:21
(95) Ты о чем? Программа развивает фигуры и занимает центр даже при глубине перебора в один ход - это не стереотипы, а ПОЗИЦИОННАЯ ОЦЕНКА!!!!
Позиция с развитыми фигурами и занятым центром оценивается выше, и есно делается ход ведущий к таким позициям... Я не понял - что ты имеешь в виду говоря про стереотипы. Мы смотрим зод Сf1-с4, в этой позиции у нас развит слон, её оценка больше, чем оценка позиции без развитого слона, значит делается этот ход. Так считает программа, и так же считает человек. А называть ОЦЕНКУ СТЕРЕОТИПАМИ - несколько прикольно...
Ты хотел сказать, что человек делает шаблонные ходы, по шаблонным планам. Так это то-же самое. Эта позиция, получившаяся после шаблонного хода - ему знакома, и поэтому человек оценивает её выше. Программа делает так-же.
97 NS
 
16.02.06
21:22
(+96) Еще раз - юез перебора и генерации ходов ход сделать в принципе невозможно. Если ты не рассматривал ход, значит ты не знаешь, что он в этой позиции возможен, и значит сделать ты его не можешь в принципе.
98 avm-nn
 
16.02.06
22:29
(96) Стереотип почему-то обычно понимают негативно. На самом деле Стереотип и есть некая Оценка. В некоторых случаях она соответствует действительности, в некоторых нет. В первом случае она полезна, во втором - вредна и деструктивна.
Я хотел сказать, что опытный шахматист немного тольше делает оценку. Он иногда не считает до потери пульса ходы, но по каким-либо отдельным, едва уловимым "приметам" может оценить позицию. Не везде идет просчет ходов. Более того, некоторые ходы и стратегии явно отсекаются в самом начале именно из соображений тонкой оценки опытного игрока.
Это как опытный оценщик, эксперт может по едва уловимым незначительным для непосвященного деталям дать правильное заключение.
99 Скользящий
 
16.02.06
22:35
Я помню, описывалось мышление шахматного игрока, и машины. Человек мыслит по древовидной структуре, где ствол и его ветви - основные варианты. Человек изначально выбирает какой-то путь, стратегию, исходя из своих предпочтений. Кто то любит атаковать, и в безвыходной ситуации, например начинает заострять позицию, атаковать, кто то просто защищается как под дулом пистолета. (Аналогии условны.)
А варианты, это как маленькие веточки на стволе.
У человека ствол состоит из 3-7 основных вариантов (это из психологии, 5+-2), у машины же все варианты практически равнозначны. (естественно, программно можно задать оценочные стереотипы, но машина все равно будет считать все.
Кроме того, не стоит забывать про интуицию. У машины ее нет, и не будет. У человека бывают озарения. Иногда это причина блестящих побед, иногда не менее громких провалов.
100 NS
 
16.02.06
22:37
(99) Я уже писал, что при увеличении глубины на одитн полуход современные программы тратят в 2.5 раза больше времени... Посчитай
101 NS
 
16.02.06
22:38
ширину дерева программы ;-))))
102 NS
 
16.02.06
22:39
Она считает всё, но человек считает тоже всё. Программа отсекает варианты, и человек их отсекает ;-))) Но я уже писал - программа отсекает варианты очень грамотно, и при дальнейшем увеличении глубины, отсеченный вариант ВСЕГДА будет просмотрен дальше.
103 Скользящий
 
16.02.06
22:42
(102) Ты просчитал вариант, при котором ты стопудово выйгрываешь качество. Ты будешь думать дальше? Я нет, потому что этого достаточно для победы, и кроме того, человек утомляется, и ему следует поберечь силы для дальнейшей партии.
104 Скользящий
 
16.02.06
22:45
+(103) Это один из примеров отсечения вариантов. Машина же будет считать все.
105 NS
 
16.02.06
22:47
(103) Программе не надо экономить силы. Насчет времени - съекономив 1% от общего времени на одном ходе, то есть прибавив 1% времени к сотальным ходам - программа не увеличит своей силы игры ;-))) а насчет того, что у человека дерево уже - это уже не совсем так... У RYBKA дерево перебора шириной два!!!
Это при 40-50 возможных ходах в миттельшпиле...
106 NS
 
16.02.06
22:48
(104) Еще раз - ты совсем не понимаешь принципы перебора шахматных программ. Она будет считать всё, но всё на разную глубину. Причем очень выборочно.
107 Скользящий
 
16.02.06
22:49
(105) Насколько я помню (извини, если сыплю соль на рану) твоя программа проиграла, из-за того, что ей не хватало времени на просчет, что то там было с задержками передачи. :-)
Я не понял насчет RYBKA - это что?
(106) Возможно. Я не изучал это глубоко, как ты.
108 NS
 
16.02.06
22:52
(104) Выйграв качество программа укоротит вариант. Причем очень здорово. Так, что на него будет тратиться ничтожное время. Из общего времени обдумывания. Но причем с увеличением глубины - она всё-таки потихоньку (при методе пустого хода удлинение на один полуход в этом варианте будет происходить при удлинении на четыре полухода в PV(основных вариантах), при использовании впридачу хистори пурнинг, углубление некорректного варианта будет происходить еще медленней, но то, что вариант всё-таки будет продолжаться - позволит программе видеть скрытые угрозы, в казалось-бы безовасном варианте с выйгрышем качества)
109 NS
 
16.02.06
22:55
(107) Это открытие года (этого) - сильнейшая в мире программа. Её создатель что-то придумал очень крутое. Еще один селективный метод отсечений скорей всего, впридачу к уже известным хистори пурнинг и метод пустого хода (ребель редукшн всерьез не воспринимаем)
Насчет проигрыша моей программы - не она долго думала, а на передачу ходов уходило более 15-ти минут, отведенных ей на партию. То есть если бы она ходила моментально - всё равно бы проигрывала. Но 1% времени тут не при чем!!! При увеличении времени на обдумывание в два раза - программа будет играть сильнее всего пунктов на 50 (это для программ на быстрых языках, для программы на 1С время есно намного критичней)
110 Скользящий
 
16.02.06
22:56
(109) Сдаюсь. Слишком уж высокий для меня уровень беседы. Подготовиться надо было. :-)
111 NS
 
16.02.06
22:59
(110) Могу тебе объяснить - методы сокращения перебора программ - бурутся из человеческих!!! И метод пустого хода и хистори пурнинг, и Футилити пурнинг.
И методы продления чисто человеческие (отход от шаха, размен, единственный ход, переход в эндшпиль, ход пешкой на седьмую, разрушение позиции короля и т.д.), и ФВ - тоже чисто человеческий метод.
112 NS
 
17.02.06
00:14
Тем, кто говорит, что человек в партии не перебирает варианты ;-)))))
Еще скажите, что и анализе партии человек варианты не перебирает.