Бектрекинг: Разлика между версии

Изтрито е съдържание Добавено е съдържание
м ограничение (математика)|
backtracking = "търсене с връщане", а не "връщане назад". Последното е тавтология: нима може да има "връщане напред"
Ред 1:
'''Бектрекинг''' ({{lang-en|backtracking}}, в превод „връщане„търсене назад“с връщане“) е съвкупнообщо название зана клас от [[алгоритъм|алгоритми,]] закоито намиране нанамират всички (или някои) решения на изчислителни задачи, по-специално [[задача за удовлетворяване на ограниченията|задачи за удовлетворяване на ограничениятаограничения]] (''constraint satisfaction problems''). При този вид алгоритми инкрементално (с постепенно нарастване)решението се разширяваобразува множествотостъпка отпо [[кандидат-решение|кандидат-решенията]]стъпка, икато за всекивсяка кандидатстъпка се проверява дали еудовлетворява възможнопоставените валидноограничения. решениеПри нарушаване на някое ограничение се отменя последната стъпка и, все случай,търси чедруга невъзможност. е,При товаизчерпване кандидат-решениена възможностите се отстраняваотменя отпредпоследната множествотостъпка и тот.н. намалявадо (откъдетополучаване ина метафоратарешение сили връщанетодо назад)изчерпване на всички възможности.<ref>{{cite book | title = The Art of Computer Programming | author = [[Доналд Кнут|Donald E. Knuth]] | publisher = Addison-Wesley | year = 1968}}</ref><ref>{{cite web | url=http://www.cse.ohio-state.edu/~gurari/course/cis680/cis680Ch19.html | title=CIS 680: DATA STRUCTURES: Chapter 19: Backtracking Algorithms | year=1999 |last=Gurari|first=Eitan|archive-url= https://web.archive.org/web/20070317015632/http://www.cse.ohio-state.edu/~gurari/course/cis680/cis680Ch19.html#QQ1-51-128|archive-date=17 March 2007}}</ref>
 
Класически пример за използването на бектрекинг е [[задача за осемте царици|задачата за осемте царици]], която търси всички възможни варианти осем [[Дама (шахмат)|царици]] да бъдат разположени на стандартна [[шахматна дъска]] така, че никоя царица да не атакува друга. В стандартния бектрекинг подход, частичното кандидат-решение представлява разположение на <math>k</math> царици в първите <math>k</math> реда от дъската, така че никои две царици да не са споделят общ ред или стълб на дъската. Кандидат-решения, които съдържат взаимно атакуващи се царици, биват изоставяни от алгоритъма.