Компьютерно-решительное
Sep. 18th, 2020 03:16 pmЯ иногда нахожу удовольствие в просмотре роликов Cracking the Cryptic, и каждый раз думаю, что у меня желания заниматься тем, что компьютер может сделать лучше или быстрее, не возникает (можно только удивиться моему дару предвидения, раз меня шахматы никогда не интересовали).
Гораздо интереснее было бы написать программу, которая решает судоку, думал я каждый раз, когда в очередном ролике описывалась очередная вариация, и вспоминал о языке Sentient (на сегодняшний день всё ещё отсутствующем в википедии), с которым я игрался несколько лет назад.
Наконец, я перестал тормозить и погуглил "sentient sudoku solver". Разумеется, всё уже было написано, и очень давно, причём с лапидарностью необычайной.
Вариации типа "ячейки, находящиеся друг от друга, на расстоянии хода коня, должны быть различны, или "сумма таких то ячеек должна быть равна такому-то числу" и подобные приписываются к базовому правилу без принципиальных трудностей. Как логику ни напиши, всё равно общее количество бит, которые нужно подобрать с помощью SAT, будет равно 324, по 4 бита на каждую цифру 1-9, которых всего 9х9=81, а это для алгоритмов, способных решать задачи involving tens of thousands of variables and millions of constraints - сущие пустяки.
Интересно, когда начнут интересоваться наличием Sentient в списке языков в резюме.
Гораздо интереснее было бы написать программу, которая решает судоку, думал я каждый раз, когда в очередном ролике описывалась очередная вариация, и вспоминал о языке Sentient (на сегодняшний день всё ещё отсутствующем в википедии), с которым я игрался несколько лет назад.
Наконец, я перестал тормозить и погуглил "sentient sudoku solver". Разумеется, всё уже было написано, и очень давно, причём с лапидарностью необычайной.
Вариации типа "ячейки, находящиеся друг от друга, на расстоянии хода коня, должны быть различны, или "сумма таких то ячеек должна быть равна такому-то числу" и подобные приписываются к базовому правилу без принципиальных трудностей. Как логику ни напиши, всё равно общее количество бит, которые нужно подобрать с помощью SAT, будет равно 324, по 4 бита на каждую цифру 1-9, которых всего 9х9=81, а это для алгоритмов, способных решать задачи involving tens of thousands of variables and millions of constraints - сущие пустяки.
Интересно, когда начнут интересоваться наличием Sentient в списке языков в резюме.