Форум » » Что нельзя объяснить шахматной программе? » Ответить

Что нельзя объяснить шахматной программе?

PozitiFF_Chess: Остались ли еще какие-то чисто человеческие привилегии, которые нельзя было бы объяснить программе с помощью алгоритмов? И если да - то почему этого сделать нельзя? Или можно поставить вопрос по-другому: какими чисто шахматными законами обычно пренебрегают разработчики с целью оптимизации своего кода и усиления игры шахматной программы?

Ответов - 94, стр: 1 2 3 4 5 All

Кевин: [chess]8/2K5/1p6/1P4k1/5p2/8/6P1/8 w - - 0 1[/chess] 8/2K5/1p6/1P4k1/5p2/8/6P1/8 w - - 0 1 А вот и позиция, о которой я говорил. Правда, тут Рыбка даёт всего 7 баллов, а мне казалось, что больше десяти... Однако в текущем анализе Рыбка уверенно показывает больше тридцати баллов и никак не может переубедиться в этом (видимо, потому мне и думалось, что тут оценка очень высока). Вообще тут не совсем подходит понятие, что Рыбка неправильно оценивает ничью: она наоборот идёт на ничью и даёт слишком высокую оценку варианту, в то время как есть выигрышный путь, который она не видит. Причём идёт Рыбка на заведомо ничейную позицию после взятия пешки в этом этюде. Вот он сам и правильное решение: [Event "?"] [Site "?"] [Date "1926.??.??"] [Round "?"] [White "Dedrle, F."] [Black "?"] [Result "1-0"] [SetUp "1"] [FEN "8/2K5/1p6/1P4k1/5p2/8/6P1/8 w - - 0 1"] [PlyCount "13"] [EventDate "1926.??.??"] 1. Kc6 $3 (1. Kxb6 $2 Kg4 2. Kc6 Kg3 3. b6 Kxg2 4. b7 f3 5. b8=Q f2 $11) (1. Kd7 $2 Kf5 $1 2. Kc7 Ke4 3. Kxb6 Ke3 4. Kc5 Kf2 5. b6 Kxg2 6. b7 f3 7. b8=Q f2 $11) 1... Kg4 2. Kd6 Kg3 3. Ke5 Kg4 4. Kf6 Kh4 5. Kf5 Kg3 6. Kg5 Kxg2 7. Kxf4 1-0

Behovodec: *PRIVAT*

WildCat: Кевин А вот и позиция, о которой я говорил. Это классический пример зачем нужны эндшпильные базы. Причем здесь достаточно 4-ки.


Кевин: WildCat пишет: Это классический пример зачем нужны эндшпильные базы. Причем здесь достаточно 4-ки. А я и не спорю, потому и говорил, что без Налимова анализ проводился. Просто интересно, как движки не могут найти выигрыш в такой позиции, где настолько мало фигур. Как-нибудь если не забуду, то прогоню эту позицию другими движками без таблиц.

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

Behovodec: Но Рыбка даже с пятифигурками не находит правильный ход, а СмартСинк — сразу и без таблиц.

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

NS: Задав правила матования в человеческом виде, а не в виде полных таблиц. Их всего три... 1. Таблица углов в которых матуется при заданном положении пешки. 2. Король может быть перегнан только в противоположный угол, но не в соседний. 3. Когда загнали в матуемый угол можно отпускать пешку. Ну и сделать грамотные PST чтоб умел загонять в угол и перегонять в противоположный.

Behovodec: Похоже, я ошибался, SmarThink без таблиц тоже считает лучшим К:b6. Зато нашёлся другой движок под названием ELGINDY, который отыскал ход Кc6. Analysis by ELGINDY: 1.Kc6 Kg4 2.Kd6 Kf5 3.Kd5 Kf6 4.Ke4 Kg5 5.Ke5 Kg4 6.Kf6 Kg3 7.Kf5 f3 8.gxf3 Kxf3 9.Ke5 Ke3 10.Kd6 Ke2 11.Kc6 Kf2 12.Kxb6 Kf3 13.Ka7 Kg3 14.Ka8 Kh4 15.b6 +- (7.90) 15 00:00:06 3327тП Движок установился вместе со сборкой Фрица 10 от Эссама Эль Гинди. Кто-нибудь знает, что это за программа? Чей-то клон или самостоятельная разработка? Скачать движок можно отсюда: http://slil.ru/28484525

WildCat: Не нашел ни одного движка, который понимал бы эту позу: [chess]8/8/2b1P2B/8/p4K2/P7/4k3/8 w[/chess]

unknow: WildCat пишет: Не нашел ни одного движка, который понимал бы эту позу: 8/8/2b1P2B/8/p4K2/P7/4k3/8 w На днях ковырял мозги по поводу позиции из той же оперы: 8/6k1/8/6KP/5p2/5B2/7P/8 b - - 0 56 Вообщем казалось бы есть накодированный пробник для позиций типа: 8/6kP/8/5BK1/8/7P/8/8 w - - 5 67 [pre2] static bool probe_KBP8k(int *score) { int bk_sq = board.king_sq[black]; int wb_sq = rbit2sq(board.items[wbishop]); int wp_sq = lbit2sq(board.items[wpawn]); // дальняя пешка со стороны белых if (sq_file(wp_sq) % file_h || (~geo_line[wp_sq][path_vert] & board.items[wpawn])) return false; // все пешки на крайней вертикали if (sq_color(sq_make(sq_file(wp_sq), rank_8)) == sq_color(wb_sq)) return false; // поле превращения не цвета слона if (geo_dist[bk_sq][wp_sq] == 1 && sq_rank(bk_sq) == sq_rank(wp_sq)) return *score = 0, true; // король сбоку пешки if (bit_test(geo_pawn_road[white][wp_sq], bk_sq)) return *score = 0, true; // король перед пешкой return false; } [/pre2] Однако движок не хочет забирать черную пешку в первой позиции - тут ему понятно, что ничья по пробнику. Варианты так и крутятся с большим минусом для черных. Ничего другого не придумал кроме как придумывать эвристику по присуждению - когда у слабейшей стороны снимается пешка и проверяется пробником, но ведь пешка может быть самоходной проходной - тут еще надо придумывать всякие другие проверки и т.д. и т.п. Вообщем, похоже, чтобы движки стали что-то понимать, надо ждать выхода 32-фигурных таблиц :)

Кевин: [chess]r5k1/7p/6p1/6P1/7P/5PK1/PR6/8 b - - 0 42[/chess] r5k1/7p/6p1/6P1/7P/5PK1/PR6/8 b - - 0 42 Ещё одна позиция, где у белых две пешки лишних, однако ничья проглядывается невооружённым глазом. И Рыбка даже с таблица Налимова (пятифигурки) даёт примерно полтора балла.

PozitiFF_Chess: Кевин пишет: Ещё одна позиция, где у белых две пешки лишних, однако ничья проглядывается невооружённым глазом Тут вряд ли ничья..

Gata: у меня в опере на диаграмме ладьи не прорисовались. Долго думал - какая тут ничья?

Кевин: PozitiFF_Chess пишет: Тут вряд ли ничья.. И как же белым выиграть? Могу, кстати, привести окончание партии движков.

PozitiFF_Chess: Кевин пишет: И как же белым выиграть? Могу, кстати, привести окончание партии движков. Проблем не видно. Ладья уходит на f2, двигается f4, король по первой горизонтали идет на b2... Дальше просто.

Кевин: А вот как разыграли позицию Рыбки, давая одну и ту же оценку: ... Kf7 43. Rh2 Ra4 44. Re2 Kg7 45. Rb2 Ra7 46. Kg4 Ra3 47. Rd2 Ra4+ 48. Kg3 Kf7 49. Rc2 Kg7 50. Kh3 Ra3 51. Kg2 Ra4 52. Kg3 Ra3 53. Rh2 h6 54. Rb2 hxg5 55. hxg5 Kf7 56. Re2 Ra4 57. f4 Ra3+ 58. Kg4 Ra4 59. Rf2 Ra3 60. Rb2 Kg7 61. Re2 Kf7 62. Rd2 Kg7 63. Rb2 Kf7 64. Rh2 Kg7 65. Rd2 Kf7 66. Rf2 Ra4 67. Rb2 Ra3 68. Rg2 Kg7 69. Rc2 Kf7 70. Kh4 Ra7 71. Kg3 Ra3+ 72. Kg4 Ra4 73. Re2 Ra3 74. Kh4 Ra4 75. Kg4 Ra3 1/2-1/2 Как понимать? Тупость движков?

PozitiFF_Chess: Кевин пишет: Как понимать? Тупость движков? А это можно понимать как-то по другому? :) Единственный план - в активизации белого короля. Победу по очкам никто в шахматах не присуждает :) .. На самом деле выигрывает тупой перевод короля через f4 на ферзевый фланг. Пешкой h придется при этом пожертвовать. Это наверное движок и смущает :)

vitamix: В позиции Кевина 1...Ra4! железно делает ничью, имхо. Дорога в центр перекрыта, по первой горизонтрали королю не пройти, т.к. черные размениваются на g5, цепляются ладьей к пешке f4 и постоянно угрожают переводом короля на f5.

PozitiFF_Chess: vitamix пишет: В позиции Кевина 1...Ra4! железно делает ничью, имхо. Дорога в центр перекрыта, по первой горизонтрали королю не пройти, т.к. черные размениваются на g5, цепляются ладьей к пешке f4 и постоянно угрожают переводом короля на f5. Ну хорошо, по первой горизонтали слишком тонко. Но можно идти и по третьей. 2.f4 - и дальше через f3 топаем к пешке а... Теперь черный король не может покинуть пешку h7 (энд три против одной должен быть выигран), поэтому идем спокойненько королем на ферзевый, ничего не боясь... Черным только искать соскок. О железобетонной ничьей речи нет.



полная версия страницы