Полиноми и полином проблем - studopediya

Да предположим / (ф) и г

Ние наричаме проблема с полином (полином проблем), ако то принадлежи на O (/ (ф)), където е

Търсене на задачите, които принадлежат към P, той е един от основните проблеми на компютърните технологии, тъй като тя е тясно свързана с въпроси за това дали има практично решение за проблемите. Всъщност, проблемът с липсата на Р, се характеризират с много дълго бягане, дори и за малки входове. Например, представете си задача, която се извършва в 2 "стъпки. Експоненциалният израз 2" не се ограничава от всеки полином. Всъщност, ако е

Помислете за пример. Представете си, проблемът с изброяване на всички възможни подгрупи, които могат да се образуват от групата, състояща се от N хора. Тъй като тези подгрупи могат да бъдат 2 "- 1 (приемаме, цялата група подгрупа, но не позволявайте празни подгрупи), който и да е алгоритъм за решаване на този проблем трябва да се състои от най-малко 2" - 1 стъпки, и неговата сложност ще бъде най-малко равна на тази стойност. Но изразяването на 2 "- 1, е показателен, не се ограничава само от всеки полином Следователно всяко решение на този проблем чрез увеличаване на размера на групата, от която избрания подгрупа, изисква огромно време на изпълнение ..

В контраст на проблема с подгрупи, сложността на който е висок само заради размера на изхода, има проблеми, чиято сложност може да бъде висока, дори и на крайната продукция - ". Не" е просто "да" или Например, способността да се отговори на въпросите за истинността на твърденията, че се нуждаят от добавяне на реални числа. Лесно можем да кажем, че отговорът на въпроса "Вярно ли е, че е налице реално число, което, когато се добавя към себе си се получава стойност от 6?" е "да", и на въпроса: "Вярно ли е, че е налице различна от нула реално число, което, когато се добавят със себе си дава 0? "-" не ". Въпреки това, ако тези проблеми стават все по-сложни, за да се отговори, за да ги отслабва. Ако сме изправени пред много подобни въпроси, а след това най-вероятно искате да използва компютърна програма, за да отговори на тях. За съжаление, търсенето на отговори на тези въпроси изисква експоненциално време, в резултат на което компютрите не могат да поддържат редовност в отговор на по-трудните въпроси.

Той е теоретично решаване на проблема, не принадлежат на P, има голяма сложност време, ние трябва да признаем, че те не могат да бъдат решени от практическа гледна точка. Учените, участващи в областта на компютърните технологии, наречени такива проблеми трудни за разрешаване. От друга страна, задачите, за които са налице практически решения, които се съдържат в P. Следователно, разбиране P границите на класа се превърна във важна област на компютъра инженерни проучвания.

Помислете за търговски пътник проблем, което е, че търговецът трябва да посетите всички свои клиенти в различни градове, без да се надвишава определената дължина на пътя, който предвижда бюджет за пътуване. Неговата задача, следователно, е да се намери начин (от къщата, през целия град, и преди да се върне у дома), общата стойност на пътуването, което не надвишава парите за пътуване.

Традиционното решение на този проблем - последователно разглежда възможните начини за сравняване на дължината на всеки с лимит на движение на пари, докато не се намери правилния път, или всички възможности са изчерпани. Въпреки това, този подход изисква време nonpolynomial решения. С увеличаването на броя на градовете броят на пътища, които трябва да се провери, увеличава по-бързо от който и да е полином. Следователно, решението на проблема с пътуващ търговец за голям брой градове по този начин е невъзможно.

Ние стигаме до извода, че в разумен срок изисква бърз алгоритъм за решаване на проблема. Нашата апетит подхранвана от подозрението, че ако съществува подходящ път и ние ще изберете първото решение ще се намери много бързо. По-специално, в следния списък от команди, можете бързо и да получите най-доброто решение на проблема:

Вземете един от възможните начини и да се изчисли общата дължина път. ако (дължина на пътя не надвишава допустимото)

след това (обявим успех)

друг (нищо за деклариране)

Но това не е набор от инструкции е алгоритъм, в техническия смисъл на думата. Първата му инструкция е неясна - тя не посочва кой път да избере и от които идват на решението. Тя разчита на въображението на механизма за програма, предоставяща широка гама от решения за него. Ние казваме, че такова nondeterministic инструкция, и се нарича "алгоритъм", който съдържа такива инструкции, nondeterministic, алгоритъмът (nondeterministic алгоритъм).

Моля, имайте предвид, че увеличаването на броя на градовете, необходимо за това не са детерминирани алгоритъм се увеличава бавно време. Процесът на избор на пътя е просто извежда списък на градовете, което отнема време пропорционално на броя на градовете. Освен това е необходимо да се изчисли по цялата дължина на избрания път времето също е пропорционално на броя на градовете, както и сравнението с максимално допустимото пътя не зависи от броя на градовете. Ето защо, по време на изпълнение извън детерминирана полином алгоритъм е ограничен. Ето защо, пътуващ търговец проблем може да бъде решен чрез не-детерминиран алгоритъм в полином време.

Разбира се, нашата не е детерминирана решение не е идеално. Тя се основава на принципа на случайния подбор. Въпреки това, неговото съществуване е достатъчно, за да се предполага, че може би там е детерминирана решение на търговски пътник проблем, който работи в полином време. Вярно или не - все още отворен въпрос. Всъщност, проблемът с пътуващ търговец - само един от проблемите, за които е известно, не е детерминирана решения, извършени в полином време, и за които все още не са намерили детерминирани решения полином време. Подигравателен ефективността на не-детерминирани решения на тези проблеми ни кара да се надяваме, че един ден ще се намери и ефективно детерминирани решения, но повечето са убедени, че тези проблеми са все още твърде сложни и отвъд възможностите на ефективни детерминиран алгоритъм.