Рубрики
Без рубрики

N-Queens-Puzle … (не так?) загадочный.

То, как кто -то интерпретирует и формулирует проблему – четкую аналогию с точки зрения, которую мы придерживаемся нашего мира – является самым первым и наиболее определяющим шагом в ее решении – оптимально или даже ** вообще **. Tagged с помощью Python, AI, проблемы с проблемами, обсудить.

Что такое n-queens-puzle?

Следующий Эта вики ссылка на 8-Queens-Puzzle Можно быстро понять простую головоломку. Подводя итог, цель состоит в том, чтобы разместить N -Queens на (Nxn) доска, так что ни одна королева не подвергается нападению другой – вертикально, горизонтально или диагонали (как шахматы). (Одно) Решение:

Не решение:

Простой Чтобы понять, но экспоненциально жестко решать.

Постановка проблемы

Мы сейчас понять Наша проблема – отличная – но вопрос здесь: Как Мы решим это? – Что такое Лучший подход к Большинство игры?

  1. Мы попробуем для каждый Королева каждый Не занят позиции и проверяете его достоверность? – Другими словами, грубая подчеркивает наш путь к решению.
  2. Поместим ли мы королеву и немедленно вычеркнут все позиции он атакует и пытается разместить следующий на все Действительные позиции остались?
  3. Нам даже нужно рассмотреть все Действительно Позиции остались?
  4. Для первой королевы доска пуста – где мы пытаемся разместить самый первый с момента все позиции действительны? Везде ?

Список идет В конце концов Анкет Как я пытаюсь разоблачить здесь, есть много разных и действительный способы сформулировать проблему и найти решение. Но некоторые лучше других. Путь лучше. Очевидно, первый подход всегда сводится к Брусная сила Анкет Но вот где наш Понимание и перспектива проблемы вступает в игру. Заполняя различные возможные позиции, чтобы поместить королеву, мы ошибочно пробуем пути решения, которые – если мы немного подумаем – с самого первого шаг, неразрешимый Анкет

Просто чтобы дать вам немного вкуса

Терпеть меня в этой линии мысли: Учитывая, как королева нападает на различные позиции на доске, Имеет ли это смысл поместить еще один на то же самое строка? или то же самое столбец? или даже, То же самое диагональ? Нет, ответ – нет, он не имеет смысла , потому что мы сразу же знаем, что эти позиции недействительны, когда мы размещаем королеву – нам даже не нужно думать об этих возможностях. Более того, поскольку мы теперь знаем, что нет смысла размещать королеву в одном и том же ряду, столбец или диагональ, как и другой, мы точно знаем, где разместить само собой первый Королева. Нет, у нас нет N * n (читает n Times n ) Возможности для первой королевы, на самом деле у нас есть только N , в самом первом столбце. И то же самое касается следующей королевы – это означает, что нет смысла пытаться разместить королеву где -то еще, кроме Самая левая бесплатная колонка , поскольку в каждой колонке будет ровно одна и только одна королева. Эта перспектива (или, формально, формиляция проблем) значительно уменьшит возможные пути решения, поэтому будет намного быстрее и эффективно

Выводы

То, как мы решаем проблему, начиная с того, насколько хорошо мы ее понимаем, значительно повлияет на результат нашего решения. Это на самом деле ощутимо с некоторыми ресурсами ИИ: Насколько хорошо алгоритм предварительно получает определенную форму проблемы? Сколько времени, испытательных возможностей и различных путей решения, он расширит, чтобы достичь решения? Я реализовал ( здесь ) в Python все вышеперечисленные формирования проблем и некоторые другие, чтобы любой мог попытаться проверить это самостоятельно. Я намеренно реализовал их с Слепой поиск , наименее эффективный способ найти решение для проблемы, которую мы так хорошо знаем – показать, насколько хорошо оно будет преформировать по сравнению с плохими/лучшими формами проблем.

С Уважением

Надеюсь, вам понравился пост и на самом деле дал мой Инструмент компаратора Попробуйте увидеть это в действии самостоятельно! Пожалуйста, дайте мне обратная связь или внедрить новые идеи формирования проблем! Увидимся в следующий раз, Диого из Португалии

Оригинал: “https://dev.to/diogopnunes/the-n-queens-puzzle-is–not-so-puzzling-b53”