SlideShare a Scribd company logo
1 of 22
Анализ игры “Судоку”
История судоку Прообразом судоку -“Магический квадрат”,  появился в Китае 2000 лет назад.  Квадрат размером 3х3 клетки. В каждую клетку число от 1 до 9. Сумма чисел в любом столбце, строке и по диагонали равнялась 15. Леонард Эйлер(1707-1783). Магические квадраты для 9, 16, 25 и 36 ячеек. 1979г. Word Games magazine. Гарвард Гаррис. Su – число, duko – единственное. 12 ноября 2004г. The Times.
Правила и цель игры Квадрат 9х9. Цифры от 1 до 9. В строке столбце и малом квадрате 3х3 цифры не повторяются.
Правила и цель игры Несколько уровней сложности(сложность зависит не только от количества заполненных клеток, а и от положения). Разные по размеру(4х4, 9х9,16х16 и так далее. В журналах встречаются нестандартного размера, пр. 9х12). Приёмы решения одинаковы(не зависят от размера и сложности, так что один и тот же алгоритм подойдёт как для 9х9, так и для 16х16).
Способы решения судоку Как задачи CSP Множество переменных, Х1,Х2,…,Хn и множеством ограничений, C1,C2,…,Cm. Каждая Xi имеет непустую область определения Di(числа от 1 до 9) возможных значений.  Каждое Ciвключает некоторое подмножество переменных и задаёт допустимые комбинации значений для этого подмножества. Состояние задачи - присваивание значений некоторым переменным.  Присваивание, которое не нарушает никаких ограничений, называется совместимым, или допустимым присваиванием. Полным называется такое присваивание, в котором учавствует каждая переменная, а решением CSP задачи является полное присваивание, которое удовлетворяет всем ограничениям.
Способы решения судоку Любой задаче CSP может быть дана инкрементная формулировка, как и любой стандартной задаче поиска: Начальное состояние. Изначально в некоторых клетках вписаны числа, то есть переменные, соответствующие этим клеткам, инициализированы некоторыми значениями, не нарушающими ограничения. Функция определения преемника. Значение может быть присвоено любой переменной с неприсвоенным значением, при условии, что переменная не будет конфликтовать с другими переменными, значения которым были присвоены ранее. Проверка цели. Проверка того, что текущее присваивание является полным, то есть заполнены все 81 клетки и не нарушается ни одно из ограничений.
Способы решения судоку Методы решения таких задач: Поиск в ширину (n!*dn ветвей дерева) Поиск в глубину Поиск в глубину может быть усовершенствован: Эвристики(Minimum Remaining Values  - MRV) Предварительная проверка(распространение ограничений) Хронологический поиск с возвратами(при неудаче возврат к предыдущей переменной, либо к переменной из конфликтного множества. Его определяет предварительная проверка)
Приёмы решения судоку Приёмы, упрощающие дерево поиска Одиночки Скрытые одиночки Запертый кандидат Открытые пары(тройки, четвёрки) Скрытые пары(тройки, четвёрки) X-wing Одиночки.Метод заключается в отыскании в таблице одиночек, т.е. ячеек, в которых возможна только одна цифра и никакая другая. Вписываем её и исключаем её из других клеток этой строки, таблицы и блока.
Приёмы решения судоку Скрытые одиночки. 4 в зелёном блоке только в одной клетке.
Приёмы решения судоку Запертый кандидат. В пределах блока цифра только в одной строке. Из других блоков исключаем.
Приёмы решения судоку Открытые пары. Если две ячейки в группе (строке, столбце, блоке) содержат идентичную пару кандидатов и ничего более, то никакие другие ячейки этой группы не могут иметь значения этой пары.
Приёмы решения судоку Скрытые пары. Если в двух ячейках в группе (строке, столбце, блоке) содержат кандидаты, среди которых идентичная пара, не встречающаяся ни в одной другой ячейке данного блока, то никакие другие ячейки этой группы не могут иметь значения этой пары.
Приёмы решения судоку X-wing. Если значение имеет только два возможных местоположения в какой-то строке (столбце), то оно обязательно должно быть назначено в одну из этих ячеек. Если же существует еще одна строка (столбец), где этот же кандидат также может быть только в двух ячейках и столбцы (строки) этих ячеек совпадают, то ни одна другая ячейка этих столбцов (строк) не может содержать данную цифру.
X-wing
Реализация программы Среда разработки – Delphi 7. 3 режима : Решение вводимого судоку программой Решение судоку, сгенерированного программой, пользователем Генерация судоку, определённого уровня сложности Работает с судоку общего вида, однако тестировалась в основном для 9х9.
Реализация программы Решение вводимого судоку программой. Программа генерирует пустой квадрат с количеством ячеек, определяемым пользователем. Пользователь может кликнуть на любую из ячеек и вписать туда цифру, нажатием соответствующей клавиши на клавиатуре. После введения некоторого количества чисел, пользователь может кликнуть по кнопке “Решить” и программа предоставит ему возможный вариант решения, либо сообщит о том, решение данного судоку не существует.
Реализация программы Введеный судоку программа решает с помощью Простой перебор с возвратами с эвристикой типа MRV (то есть вначале заполняются такие клетки, в которые можно подставить наименьшее количество цифр) Второй алгоритм представляет собой тот же поиск с возвратами, однако в нём программа пытается найти ситуации, описанные ранее в “приёмах решения судоку”. Программа выдаёт количество присваиваний, которое сделала в процессе решения, таким образом предоставляя возможность сравнить эффективность второго алгоритма, по сравнению с первым. Так же программа может выдавать количество возможных решений введённого судоку.
Реализация программы Решение судоку, сгенерированного программой, пользователем. После выбора уровня сложности и количества ячеек, программа создаёт квадрат NxN, некоторые числа которого заполнены цифрами. Пользователь, кликая по ячейкам и нажимая на цифры на клавиатуре, заполняет данный квадрат до того момента, пока остаются пустые клетки. В случае введения ошибочной цифры, пользователь может выбрать эту же клетку и поставить в неё другую цифру.
Реализация программы Режим контроля ввода. При включении этой опции, программа будет выдавать ошибку в случаях, когда введённая пользователем цифра недопустима из-за того, что по горизонтали, вертикали или в блоке 3х3 такая цифра уже имеется. Режим подсказок. В случаях, когда пользователь затрудняется в выборе того, какую цифру и в какую клетку поставить, он может включить режим подсказок. В этом режиме, программа будет выдавать для каждой клетки перечень цифр, которые возможно поставить в эту клетку, без нарушения правил игры.
Реализация программы Генерация судоку выбранного уровня сложности. Модификация готового судоку. Генерация ответа с последующим вычёркиванием некоторых цифр с проверкой единственности решения на каждом этапе. Заполнение пустого квадрата цифрами, с проверкой существования и единственности решения.
Итоги и цели Генерация судоку выбранного уровня сложности Тестирование работы алгоритмов решения для судоку произвольного размера Поиск новых приёмов решения судоку Задача судоку, имеющего единственное решение при минимальном количестве цифр. http://units.maths.uwa.edu.au/~gordon/sudokumin.php
Итоги и цели  +   +   +     +   +   +     +   1   +    4   +   +     +   +   +     +   +   +    +   2   +     +   +   +     +   +   +      +   +   +     +   5   +     4   +   7    +   +   8     +   +   +     3   +   +    +   +   1     +   9   +     +   +   +    3   +   +     4   +   +     2   +   +   +   5   +     1   +   +     +   +   +   +   +   +     8   +   6     +   +   + 

More Related Content

Similar to Анализ игры "Судоку"

ДЗ метод Гаусс.pdf
ДЗ метод Гаусс.pdfДЗ метод Гаусс.pdf
ДЗ метод Гаусс.pdfCahyaPerwira
 
Тест ГИА по математике 8-9 класс
Тест ГИА по математике 8-9 классТест ГИА по математике 8-9 класс
Тест ГИА по математике 8-9 классСтанислав Волков
 
Domain-тестирование
Domain-тестированиеDomain-тестирование
Domain-тестированиеSPB SQA Group
 
манжос мет интервалов
манжос мет интерваловманжос мет интервалов
манжос мет интерваловurvlan
 
Инструкция по работе с SPSS для специальных и клинических психологов
Инструкция по работе с SPSS для специальных и клинических психологовИнструкция по работе с SPSS для специальных и клинических психологов
Инструкция по работе с SPSS для специальных и клинических психологовКонстантин Князев
 
1827 огэ-2016. математика. трен. задания мирошин в.в-2015 -96с
1827  огэ-2016. математика. трен. задания мирошин в.в-2015 -96с1827  огэ-2016. математика. трен. задания мирошин в.в-2015 -96с
1827 огэ-2016. математика. трен. задания мирошин в.в-2015 -96сSpringRus
 
тема множество для загрузки 2013
тема множество для загрузки 2013тема множество для загрузки 2013
тема множество для загрузки 2013AliyaAringazinova
 
Лекция 3 Сегментация
Лекция 3 СегментацияЛекция 3 Сегментация
Лекция 3 СегментацияVictor Kulikov
 
Основы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задачОсновы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задачDEVTYPE
 
Jelementy kombinatoriki 2
Jelementy kombinatoriki 2Jelementy kombinatoriki 2
Jelementy kombinatoriki 2Ivanchik5
 
arfgg1
arfgg1arfgg1
arfgg1Dimon4
 
Линейные коды
Линейные кодыЛинейные коды
Линейные кодыAlex Dainiak
 

Similar to Анализ игры "Судоку" (16)

ДЗ метод Гаусс.pdf
ДЗ метод Гаусс.pdfДЗ метод Гаусс.pdf
ДЗ метод Гаусс.pdf
 
Тест ГИА по математике 8-9 класс
Тест ГИА по математике 8-9 классТест ГИА по математике 8-9 класс
Тест ГИА по математике 8-9 класс
 
Domain-тестирование
Domain-тестированиеDomain-тестирование
Domain-тестирование
 
манжос мет интервалов
манжос мет интерваловманжос мет интервалов
манжос мет интервалов
 
Metod intervaljv
Metod intervaljvMetod intervaljv
Metod intervaljv
 
Инструкция по работе с SPSS для специальных и клинических психологов
Инструкция по работе с SPSS для специальных и клинических психологовИнструкция по работе с SPSS для специальных и клинических психологов
Инструкция по работе с SPSS для специальных и клинических психологов
 
1827 огэ-2016. математика. трен. задания мирошин в.в-2015 -96с
1827  огэ-2016. математика. трен. задания мирошин в.в-2015 -96с1827  огэ-2016. математика. трен. задания мирошин в.в-2015 -96с
1827 огэ-2016. математика. трен. задания мирошин в.в-2015 -96с
 
лекция 8
лекция 8лекция 8
лекция 8
 
тема множество для загрузки 2013
тема множество для загрузки 2013тема множество для загрузки 2013
тема множество для загрузки 2013
 
23
2323
23
 
Лекция 3 Сегментация
Лекция 3 СегментацияЛекция 3 Сегментация
Лекция 3 Сегментация
 
Основы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задачОсновы комбинаторики II. Разбор задач
Основы комбинаторики II. Разбор задач
 
Jelementy kombinatoriki 2
Jelementy kombinatoriki 2Jelementy kombinatoriki 2
Jelementy kombinatoriki 2
 
arfgg1
arfgg1arfgg1
arfgg1
 
урок метод интервалов
урок метод интерваловурок метод интервалов
урок метод интервалов
 
Линейные коды
Линейные кодыЛинейные коды
Линейные коды
 

More from Спецсеминар "Искусственный Интеллект" кафедры АЯ ВМК МГУ

More from Спецсеминар "Искусственный Интеллект" кафедры АЯ ВМК МГУ (20)

Баев. Поиск шаблонов и машинное обучение для демографических событий (Pattern...
Баев. Поиск шаблонов и машинное обучение для демографических событий (Pattern...Баев. Поиск шаблонов и машинное обучение для демографических событий (Pattern...
Баев. Поиск шаблонов и машинное обучение для демографических событий (Pattern...
 
Муромцев. Методы анализа социальных графов и поиска сообществ
Муромцев. Методы анализа социальных графов и поиска сообществМуромцев. Методы анализа социальных графов и поиска сообществ
Муромцев. Методы анализа социальных графов и поиска сообществ
 
Рой. Аспектный анализ тональности отзывов
Рой. Аспектный анализ тональности отзывов Рой. Аспектный анализ тональности отзывов
Рой. Аспектный анализ тональности отзывов
 
Котиков Простые методы выделения ключевых слов и построения рефератов
Котиков Простые методы выделения ключевых слов и построения рефератовКотиков Простые методы выделения ключевых слов и построения рефератов
Котиков Простые методы выделения ключевых слов и построения рефератов
 
Лукьяненко. Извлечение коллокаций из текста
Лукьяненко. Извлечение коллокаций из текстаЛукьяненко. Извлечение коллокаций из текста
Лукьяненко. Извлечение коллокаций из текста
 
Иванов. Автоматизация построения предметных указателей
Иванов. Автоматизация построения предметных указателейИванов. Автоматизация построения предметных указателей
Иванов. Автоматизация построения предметных указателей
 
Можарова. Автоматическое извлечение именованных сущностей методами машинного ...
Можарова. Автоматическое извлечение именованных сущностей методами машинного ...Можарова. Автоматическое извлечение именованных сущностей методами машинного ...
Можарова. Автоматическое извлечение именованных сущностей методами машинного ...
 
Сапин. Интеллектуальные агенты и обучение с подкреплением
Сапин. Интеллектуальные агенты и обучение с подкреплениемСапин. Интеллектуальные агенты и обучение с подкреплением
Сапин. Интеллектуальные агенты и обучение с подкреплением
 
Смолина Пользовательские интерфейсы систем лингвистической разметки текстов
Смолина Пользовательские интерфейсы систем лингвистической разметки текстовСмолина Пользовательские интерфейсы систем лингвистической разметки текстов
Смолина Пользовательские интерфейсы систем лингвистической разметки текстов
 
Багдатов Методы автоматического выявления плагиата в текстах компьютерных про...
Багдатов Методы автоматического выявления плагиата в текстах компьютерных про...Багдатов Методы автоматического выявления плагиата в текстах компьютерных про...
Багдатов Методы автоматического выявления плагиата в текстах компьютерных про...
 
Тодуа. Сериализация и язык YAML
Тодуа. Сериализация и язык YAMLТодуа. Сериализация и язык YAML
Тодуа. Сериализация и язык YAML
 
Савкуев. Построение формального описания фотографий на основе контекстно-собы...
Савкуев. Построение формального описания фотографий на основе контекстно-собы...Савкуев. Построение формального описания фотографий на основе контекстно-собы...
Савкуев. Построение формального описания фотографий на основе контекстно-собы...
 
Савостин. Системы и методы научного поиска и мониторинга
Савостин. Системы и методы научного поиска и мониторингаСавостин. Системы и методы научного поиска и мониторинга
Савостин. Системы и методы научного поиска и мониторинга
 
Мищенко. Методы автоматического определения наиболее частотного значения слова.
Мищенко. Методы автоматического определения наиболее частотного значения слова.Мищенко. Методы автоматического определения наиболее частотного значения слова.
Мищенко. Методы автоматического определения наиболее частотного значения слова.
 
Мадорский. Извлечение тематически сгруппированных ключевых терминов из тексто...
Мадорский. Извлечение тематически сгруппированных ключевых терминов из тексто...Мадорский. Извлечение тематически сгруппированных ключевых терминов из тексто...
Мадорский. Извлечение тематически сгруппированных ключевых терминов из тексто...
 
Панфилов. Корпусы текстов и принципы их создания
Панфилов. Корпусы текстов и принципы их созданияПанфилов. Корпусы текстов и принципы их создания
Панфилов. Корпусы текстов и принципы их создания
 
Муромцев. Обзор библиографических менеджеров
Муромцев. Обзор библиографических менеджеровМуромцев. Обзор библиографических менеджеров
Муромцев. Обзор библиографических менеджеров
 
Можарова Тематические модели: учет сходства между униграммами и биграммами.
Можарова Тематические модели: учет сходства между униграммами и биграммами.Можарова Тематические модели: учет сходства между униграммами и биграммами.
Можарова Тематические модели: учет сходства между униграммами и биграммами.
 
Смирнова. Методы исправления ошибок в текстах, написанных иностранцами.
Смирнова. Методы исправления ошибок в текстах, написанных иностранцами.Смирнова. Методы исправления ошибок в текстах, написанных иностранцами.
Смирнова. Методы исправления ошибок в текстах, написанных иностранцами.
 
Баев Системы для обучения программированию
Баев Системы для обучения программированиюБаев Системы для обучения программированию
Баев Системы для обучения программированию
 

Анализ игры "Судоку"

  • 2. История судоку Прообразом судоку -“Магический квадрат”, появился в Китае 2000 лет назад. Квадрат размером 3х3 клетки. В каждую клетку число от 1 до 9. Сумма чисел в любом столбце, строке и по диагонали равнялась 15. Леонард Эйлер(1707-1783). Магические квадраты для 9, 16, 25 и 36 ячеек. 1979г. Word Games magazine. Гарвард Гаррис. Su – число, duko – единственное. 12 ноября 2004г. The Times.
  • 3. Правила и цель игры Квадрат 9х9. Цифры от 1 до 9. В строке столбце и малом квадрате 3х3 цифры не повторяются.
  • 4. Правила и цель игры Несколько уровней сложности(сложность зависит не только от количества заполненных клеток, а и от положения). Разные по размеру(4х4, 9х9,16х16 и так далее. В журналах встречаются нестандартного размера, пр. 9х12). Приёмы решения одинаковы(не зависят от размера и сложности, так что один и тот же алгоритм подойдёт как для 9х9, так и для 16х16).
  • 5. Способы решения судоку Как задачи CSP Множество переменных, Х1,Х2,…,Хn и множеством ограничений, C1,C2,…,Cm. Каждая Xi имеет непустую область определения Di(числа от 1 до 9) возможных значений. Каждое Ciвключает некоторое подмножество переменных и задаёт допустимые комбинации значений для этого подмножества. Состояние задачи - присваивание значений некоторым переменным. Присваивание, которое не нарушает никаких ограничений, называется совместимым, или допустимым присваиванием. Полным называется такое присваивание, в котором учавствует каждая переменная, а решением CSP задачи является полное присваивание, которое удовлетворяет всем ограничениям.
  • 6. Способы решения судоку Любой задаче CSP может быть дана инкрементная формулировка, как и любой стандартной задаче поиска: Начальное состояние. Изначально в некоторых клетках вписаны числа, то есть переменные, соответствующие этим клеткам, инициализированы некоторыми значениями, не нарушающими ограничения. Функция определения преемника. Значение может быть присвоено любой переменной с неприсвоенным значением, при условии, что переменная не будет конфликтовать с другими переменными, значения которым были присвоены ранее. Проверка цели. Проверка того, что текущее присваивание является полным, то есть заполнены все 81 клетки и не нарушается ни одно из ограничений.
  • 7. Способы решения судоку Методы решения таких задач: Поиск в ширину (n!*dn ветвей дерева) Поиск в глубину Поиск в глубину может быть усовершенствован: Эвристики(Minimum Remaining Values - MRV) Предварительная проверка(распространение ограничений) Хронологический поиск с возвратами(при неудаче возврат к предыдущей переменной, либо к переменной из конфликтного множества. Его определяет предварительная проверка)
  • 8. Приёмы решения судоку Приёмы, упрощающие дерево поиска Одиночки Скрытые одиночки Запертый кандидат Открытые пары(тройки, четвёрки) Скрытые пары(тройки, четвёрки) X-wing Одиночки.Метод заключается в отыскании в таблице одиночек, т.е. ячеек, в которых возможна только одна цифра и никакая другая. Вписываем её и исключаем её из других клеток этой строки, таблицы и блока.
  • 9. Приёмы решения судоку Скрытые одиночки. 4 в зелёном блоке только в одной клетке.
  • 10. Приёмы решения судоку Запертый кандидат. В пределах блока цифра только в одной строке. Из других блоков исключаем.
  • 11. Приёмы решения судоку Открытые пары. Если две ячейки в группе (строке, столбце, блоке) содержат идентичную пару кандидатов и ничего более, то никакие другие ячейки этой группы не могут иметь значения этой пары.
  • 12. Приёмы решения судоку Скрытые пары. Если в двух ячейках в группе (строке, столбце, блоке) содержат кандидаты, среди которых идентичная пара, не встречающаяся ни в одной другой ячейке данного блока, то никакие другие ячейки этой группы не могут иметь значения этой пары.
  • 13. Приёмы решения судоку X-wing. Если значение имеет только два возможных местоположения в какой-то строке (столбце), то оно обязательно должно быть назначено в одну из этих ячеек. Если же существует еще одна строка (столбец), где этот же кандидат также может быть только в двух ячейках и столбцы (строки) этих ячеек совпадают, то ни одна другая ячейка этих столбцов (строк) не может содержать данную цифру.
  • 15. Реализация программы Среда разработки – Delphi 7. 3 режима : Решение вводимого судоку программой Решение судоку, сгенерированного программой, пользователем Генерация судоку, определённого уровня сложности Работает с судоку общего вида, однако тестировалась в основном для 9х9.
  • 16. Реализация программы Решение вводимого судоку программой. Программа генерирует пустой квадрат с количеством ячеек, определяемым пользователем. Пользователь может кликнуть на любую из ячеек и вписать туда цифру, нажатием соответствующей клавиши на клавиатуре. После введения некоторого количества чисел, пользователь может кликнуть по кнопке “Решить” и программа предоставит ему возможный вариант решения, либо сообщит о том, решение данного судоку не существует.
  • 17. Реализация программы Введеный судоку программа решает с помощью Простой перебор с возвратами с эвристикой типа MRV (то есть вначале заполняются такие клетки, в которые можно подставить наименьшее количество цифр) Второй алгоритм представляет собой тот же поиск с возвратами, однако в нём программа пытается найти ситуации, описанные ранее в “приёмах решения судоку”. Программа выдаёт количество присваиваний, которое сделала в процессе решения, таким образом предоставляя возможность сравнить эффективность второго алгоритма, по сравнению с первым. Так же программа может выдавать количество возможных решений введённого судоку.
  • 18. Реализация программы Решение судоку, сгенерированного программой, пользователем. После выбора уровня сложности и количества ячеек, программа создаёт квадрат NxN, некоторые числа которого заполнены цифрами. Пользователь, кликая по ячейкам и нажимая на цифры на клавиатуре, заполняет данный квадрат до того момента, пока остаются пустые клетки. В случае введения ошибочной цифры, пользователь может выбрать эту же клетку и поставить в неё другую цифру.
  • 19. Реализация программы Режим контроля ввода. При включении этой опции, программа будет выдавать ошибку в случаях, когда введённая пользователем цифра недопустима из-за того, что по горизонтали, вертикали или в блоке 3х3 такая цифра уже имеется. Режим подсказок. В случаях, когда пользователь затрудняется в выборе того, какую цифру и в какую клетку поставить, он может включить режим подсказок. В этом режиме, программа будет выдавать для каждой клетки перечень цифр, которые возможно поставить в эту клетку, без нарушения правил игры.
  • 20. Реализация программы Генерация судоку выбранного уровня сложности. Модификация готового судоку. Генерация ответа с последующим вычёркиванием некоторых цифр с проверкой единственности решения на каждом этапе. Заполнение пустого квадрата цифрами, с проверкой существования и единственности решения.
  • 21. Итоги и цели Генерация судоку выбранного уровня сложности Тестирование работы алгоритмов решения для судоку произвольного размера Поиск новых приёмов решения судоку Задача судоку, имеющего единственное решение при минимальном количестве цифр. http://units.maths.uwa.edu.au/~gordon/sudokumin.php
  • 22. Итоги и цели  +   +   +     +   +   +     +   1   +   4   +   +     +   +   +     +   +   +   +   2   +     +   +   +     +   +   +     +   +   +     +   5   +     4   +   7    +   +   8     +   +   +     3   +   +    +   +   1     +   9   +     +   +   +    3   +   +     4   +   +     2   +   +  +   5   +     1   +   +     +   +   +  +   +   +     8   +   6     +   +   +