Введение
Метод решения проблем «нить Ариадны», названный по имени легенды об Ариадне, заключается в решении проблемы, имеющей множество кажущихся возможными путей решения — например, физического лабиринта, логической головоломки или этической дилеммы — посредством исчерпывающего применения логики ко всем доступным вариантам. Это конкретный метод, позволяющий последовательно отслеживать шаги или, шаг за шагом, использовать ряд установленных фактов в последовательном, упорядоченном поиске, приводящем к конечному результату. Этот процесс может принимать форму мысленной записи, физической отметки или даже философских дебатов; именно сам процесс носит это название.
Ariadne's thread, named for the legend of Ariadne, is solving a problem which has multiple apparent ways to proceed—such as a physical maze, a logic puzzle, or an ethical dilemma—through an exhaustive application of logic to all available routes. It is the particular method used that is able to follow completely through to trace steps or take point by point a series of found truths in a contingent, ordered search that reaches an end position. This process can take the form of a mental record, a physical marking, or even a philosophical debate; it is the process itself that assumes the name.
Реализация
Ключевым элементом применения нити Ариадны к проблеме является создание и поддержание записи – физической или иной – доступных и исчерпанных вариантов решения в любой момент времени. Эта запись называется "нитью", независимо от ее фактического носителя. Цель этой записи – позволить откат, то есть отмену предыдущих решений и попытку альтернатив. При наличии записи применение алгоритма прямолинейно:
В любой момент, когда необходимо сделать выбор, произвольно выберите один из вариантов, еще не отмеченных как неудачные, и логически следуйте ему настолько далеко, насколько это возможно. Если возникает противоречие, вернитесь к последнему принятому решению, отметьте его как неудачу и попробуйте другой вариант в той же точке. Если там больше нет доступных вариантов, вернитесь к последнему месту в записи, где варианты еще есть, отметьте неудачу на этом уровне и продолжайте. Этот алгоритм завершится либо при нахождении решения, либо при отметке всех начальных вариантов как неудачных; в последнем случае решения не существует. Если требуется тщательное исследование, даже после нахождения решения, можно вернуться к предыдущему решению, отметить его как успешное и продолжить, как будто решение не было найдено; алгоритм исчерпает все варианты и найдет все решения.
Различие от проб и ошибок
Термины «нить Ариадны» и «метод проб и ошибок» часто используются как взаимозаменяемые, что не всегда корректно. У них есть два существенных различия: «метод проб и ошибок» предполагает, что каждая «проба» дает определенную ценность для изучения и улучшения, устраняя «ошибки» на каждой итерации для повышения качества последующих проб. Нить Ариадны не имеет подобного механизма, и, следовательно, все принимаемые решения носят произвольный характер. Например, научный метод – это метод проб и ошибок, а решение головоломок – это нить Ариадны. Подходы, основанные на методе проб и ошибок, редко учитывают количество возможных решений проблемы и часто исходят из предположения о существовании единственного верного решения. Нить Ариадны не делает такого предположения и способна найти все возможные решения чисто логической задачи. Вкратце, метод проб и ошибок направлен на достижение желаемого решения, а нить Ариадны слепо исчерпывает все пространство поиска, находя любые и все решения. Каждый из этих подходов имеет свою область применения. Их можно использовать совместно – например, хотя редактирование статьи в Википедии, вероятно, является процессом проб и ошибок (учитывая, как в теории она приближается к идеальному состоянию), история статьи предоставляет данные, к которым можно применить нить Ариадны, отменяя деструктивные правки и восстанавливая статью до последней версии без ошибок, с которой можно начать новые попытки.
"Trial and error" implies that each "trial" yields some particular value to be studied and improved upon, removing "errors" from each iteration to enhance the quality of future trials. Ariadne's thread has no such mechanism, and hence all decisions made are arbitrary. For example, the scientific method is trial and error; puzzle solving is Ariadne's thread. Trial and error approaches are rarely concerned with how many solutions may exist to a problem, and indeed often assume only one correct solution exists. Ariadne's thread makes no such assumption, and is capable of locating all possible solutions to a purely logical problem. In short, trial and error approaches a desired solution; Ariadne's thread blindly exhausts the search space completely, finding any and all solutions. Each has its appropriate distinct uses. They can be employed in tandem—for example, although the editing of a Wikipedia article is arguably a trial and error process (given how in theory it approaches an ideal state), article histories provide the record for which Ariadne's thread may be applied, reverting detrimental edits and restoring the article back to the most recent error free version, from which other options may be attempted.
Приложения
Очевидно, что нить Ариадны может быть применена к решению лабиринтов так же, как и в легенде: можно использовать настоящую нить для отметки пути, или мел, или другой подобный инструмент для обозначения проходов. Если лабиринт изображен на бумаге, нитью вполне может служить карандаш. Логические задачи любого типа можно решить, используя нить Ариадны, при этом лабиринт – лишь один из примеров. В настоящее время этот метод наиболее часто применяется для решения головоломок Судоку, где он используется для подбора возможных значений для еще не заполненных ячеек. Инструмент, используемый для решения головоломок, может быть самым разным – от карандаша до пронумерованных карточек или компьютерной программы, – но все они выполняют одну и ту же задачу. Важно отметить, что поскольку построение нити Ариадны – это индуктивный процесс, а ее исчерпывающий характер не оставляет места для глубокого анализа, этот метод решения в значительной степени не приветствуется и используется лишь в крайнем случае, когда дедуктивные методы оказываются неэффективными. Искусственный интеллект в значительной степени полагается на нить Ариадны в игровых программах, особенно в шахматных; возможные ходы – это варианты, выигрышные позиции – решения, а проигрышные – неудачи. Из-за огромной глубины многих игр большинство алгоритмов не могут позволить себе полностью применять нить Ариадны к каждому ходу из-за временных ограничений, поэтому они работают в связке с эвристикой, которая оценивает игровые состояния и ограничивает поиск в ширину только наиболее перспективными вариантами, что представляет собой метод проб и ошибок. Нить Ариадны применяется даже в ситуациях, где понятие «решение» не столь четко определено, например, при навигации в интернете, анализе патентного права и в философии. «Нить Ариадны» – популярное название для веб-сайтов различного назначения, но особенно для тех, которые посвящены философским или этическим дискуссиям.