Почему отслеживание в обратном порядке делает алгоритм недетерминированным?

В вашем запросе GET ваш запрос возвращает только библиотеки. Попробуйте загрузить Книги так, чтобы они были включены в запрос и включены в результаты:

// GET: api/Libraries 
[HttpGet] 
public async Task>> GetTodoItems() 
{ 
    return await _context.Libraries.Include(l => l.Books).ToListAsync(); 
}

18
задан Mark Harrison 10 May 2016 в 04:37
поделиться

8 ответов

Так не имеет место, что отслеживание в обратном порядке делает алгоритм недетерминированным.

Скорее Вам обычно нужно отслеживание в обратном порядке для обработки недетерминированного алгоритма, с тех пор (по определению недетерминированных) Вы не знаете, какой путь взять в определенное время в Вашей обработке, но вместо этого необходимо попробовать несколько.

13
ответ дан 30 November 2019 в 07:44
поделиться

Я просто заключу Википедию в кавычки:

язык недетерминированного программирования А является языком, который может указать, в определенные моменты в программе (названный "точками выбора"), различные альтернативы для процесса выполнения программы. В отличие от этого, если затем оператор, предпочтительный метод между этими альтернативами непосредственно не указан программистом; программа должна решить во времени выполнения между альтернативами, через некоторый общий метод относился ко всем точкам выбора. Программист указывает ограниченное количество альтернатив, но программа должна позже выбрать между ними. ("Выберите", на самом деле, типичное название недетерминированного оператора.) Иерархия точек выбора может быть сформирована с высокоуровневым продвижением выбора к ответвлениям, которые содержат выбор низшего уровня в них.

Один предпочтительный метод воплощен в отслеживании в обратном порядке систем, в которых некоторые альтернативы могут "перестать работать", заставив программу отследить в обратном порядке и попробовать другие альтернативы. Если весь сбой альтернатив в конкретной точке выбора, то все ответвление перестало работать, и программа, отследит в обратном порядке далее к более старой точке выбора. Одна сложность - то, что, потому что любой выбор является предварительным и может быть переделан, система должна смочь восстановить старые состояния программы путем отмены побочных эффектов, вызванных путем неравнодушного выполнения ответвления, которое в конечном счете перестало работать.

Из статья Nondeterministic Programming .

9
ответ дан 30 November 2019 в 07:44
поделиться

Рассмотрите алгоритм для окраски карты мира. Никакой цвет не может использоваться на смежных странах. Алгоритм произвольно запускается в стране и окрашивает это в произвольный цвет. Таким образом, это проходит, окрашивая страны, изменяя цвет на каждом шаге, пока, "мм, о", две смежных страны имеют тот же цвет. Ну, теперь мы должны отследить в обратном порядке и сделать новый выбор цветов. Теперь мы не делаем выбор, как недетерминированный алгоритм был бы, это не быть возможным для наших детерминированных компьютеров. Вместо этого мы моделируем недетерминированный алгоритм с отслеживанием в обратном порядке. Недетерминированный алгоритм сделал бы правильный выбор для каждой страны.

5
ответ дан 30 November 2019 в 07:44
поделиться

Если Вы позволяете отслеживать в обратном порядке Вас, позволяют бесконечное цикличное выполнение в Вашей программе, которая делает его недетерминированным, так как фактический взятый путь может всегда включать еще один цикл.

0
ответ дан 30 November 2019 в 07:44
поделиться

Время выполнения отслеживания в обратном порядке на детерминированном компьютере является факториалом, т.е. это находится в O (n!).

, Где недетерминированный компьютер мог немедленно предположить правильно на каждом шаге, детерминированный компьютер должен попробовать все возможные комбинации выбора.

, Так как невозможно создать недетерминированный компьютер, что Ваш преподаватель, вероятно, предназначенный, следующий:

А provenly трудно проблема в классе сложности NP (все проблемы, которые недетерминированный компьютер может решить эффективно, всегда предполагая правильно) не может быть решен более эффективно на реальных компьютерах, чем путем отслеживания в обратном порядке.

вышеупомянутый оператор верен, если классы сложности P (все проблемы, которые детерминированный компьютер может решить эффективно) и NP не являются тем же. Это - известный P по сравнению с проблемой NP. Глиняный Институт Математики предложил приз за $1 миллион за свое решение, но проблема много лет сопротивлялась доказательству. Однако большинство исследователей полагает, что P не равен NP.

А простой способ подвести итог его был бы: Большинство интересных проблем, которые недетерминированный компьютер мог решить эффективно, всегда предполагая правильно, так трудно, что детерминированный компьютер должен был бы, вероятно, попробовать все возможные комбинации выбора, т.е. отслеживания в обратном порядке использования.

4
ответ дан 30 November 2019 в 07:44
поделиться

Я записал бегуну лабиринта, который использует отслеживание в обратном порядке (конечно), которое я буду использовать в качестве примера.

Вы идете через лабиринт. При достижении соединения Вы бросаете монетку для решения который маршрут следовать. При выборе тупика проследите до соединения и следуйте другим маршрутом. При попытке их всех возвратитесь к предыдущему соединению. Этот алгоритм недетерминирован, не из-за отслеживания в обратном порядке, а из-за зеркального отражения монеты.

Теперь изменяют алгоритм: при достижении соединения всегда пробуйте крайний левый маршрут, который Вы не попробовали еще сначала. Если это приводит к тупику, возвратитесь к соединению и снова попробуйте крайний левый маршрут, который Вы еще не попробовали. Этот алгоритм детерминирован. Нет никакого включенного шанса, это предсказуемо: Вы будете всегда следовать за тем же маршрутом в том же лабиринте.

1
ответ дан 30 November 2019 в 07:44
поделиться

Недетерминированные Машины Тьюринга (NDTMs) могли взять несколько ответвлений в одноэтапном. DTMs, с другой стороны, следуют за эмпирическим процессом.

можно думать о DTMs как об обычных компьютерах. Напротив, квантовые компьютеры подобны к NDTMs и могут решить недетерминированные намного легче проблемы (например, видеть свое приложение в повреждающейся криптографии). Так отслеживание в обратном порядке на самом деле было бы линейным процессом для них.

0
ответ дан 30 November 2019 в 07:44
поделиться

Мысленный эксперимент:

1) Скрытый от представления существует некоторое распределение электрических зарядов, от которых Вы чувствуете силу, и Вы измеряете потенциальное поле, которое они создают. Скажите мне точно положения всех зарядов.

2) Берут некоторые заряды и располагают их. Скажите мне точно потенциальное поле, которое они создают.

Только второй вопрос имеет уникальный ответ. Это - групповые из векторные поля . Эта ситуация может быть на аналогии с некоторыми недетерминированными алгоритмами, которые Вы рассматриваете. Далее рассмотрите в математические пределы , которые не существуют, потому что у них есть различные ответы, в зависимости от которого направления Вы приближаетесь к разрыву от.

1
ответ дан 30 November 2019 в 07:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: