Питање да ли је П једнако НП један је од најдубљих и нерешених проблема у рачунарству и математици. Овај проблем лежи у срцу теорије сложености рачунара, области која проучава инхерентну тежину рачунарских проблема и класификује их према ресурсима потребним за њихово решавање.
Да бисмо разумели питање, неопходно је схватити дефиниције класа П и НП. Класа П се састоји од проблема одлучивања (проблема са одговором да/не) који се могу решити детерминистичком Тјуринговом машином у полиномском времену. Полиномско време подразумева да се време потребно за решавање проблема може изразити као полиномска функција величине улаза. Примери проблема у П укључују сортирање листе бројева (што се може урадити за О(н лог н) времена коришћењем ефикасних алгоритама као што је сортирање спајањем) и проналажење највећег заједничког делиоца два цела броја коришћењем Еуклидовог алгоритма (који се покреће у О(лог (мин(а, б))) време).
Класа НП се, с друге стране, састоји од проблема одлучивања за које се дато решење може верификовати у полиномском времену помоћу детерминистичке Тјурингове машине. То значи да ако неко пружи кандидатско решење за проблем, може ефикасно проверити његову исправност. Важно је да НП не подразумева нужно да се сам проблем може решити у полиномском времену, већ само да се предложено решење може брзо верификовати. Примери проблема у НП укључују Булов проблем задовољивости (САТ), где се настоји утврдити да ли постоји додела истинитих вредности променљивим која чини дату Булову формулу истинитом, и проблем Хамилтоновог циклуса, који пита да ли постоји циклус који посети сваки врх графа тачно једном.
Питање П против НП поставља питање да ли се сваки проблем чије се решење може проверити у полиномском времену (тј. сваки проблем у НП) такође може решити у полиномском времену (тј. налази се у П). Формално, питање је да ли је П = НП. Када би П било једнако НП, то би значило да би сваки проблем за који се решење може брзо проверити могао и брзо да се реши. Ово би имало дубоке импликације за поља као што су криптографија, оптимизација и вештачка интелигенција, јер би многи тренутно нерешиви проблеми потенцијално могли постати ефикасно решени.
Упркос деценијама истраживања, питање П против НП остаје отворено. Нико још није успео да докаже или П = НП или П = НП. Тешкоћа овог проблема је наглашена тиме што је Институт Клеј за математику уврстио у један од седам „проблема миленијумске награде“, са наградом од милион долара за тачно решење. Недостатак резолуције довео је до значајног развоја како теоријске тако и примењене рачунарске науке.
Један од кључних концепата који се односи на питање П против НП је НП-потпуност. Проблем је НП-потпун ако је у НП и тежак као било који проблем у НП, у смислу да се било који НП проблем може свести на њега коришћењем редукције полиномског времена. Концепт НП-потпуности увео је Стивен Кук у свом основном раду из 1971. године, где је доказао да је САТ проблем НП-комплетан. Овај резултат, познат као Кукова теорема, био је револуционаран јер је пружио конкретан пример НП-потпуног проблема и успоставио оквир за идентификацију других НП-потпуних проблема.
Од тада се показало да су многи други проблеми НП-потпуни, као што су проблем трговачког путника, проблем клика и проблем ранца. Значај НП-потпуности је да ако се било који НП-потпун проблем може решити у полиномском времену, онда се сваки проблем у НП може решити у полиномском времену, што имплицира П = НП. Обрнуто, ако се било који НП-потпун проблем не може решити у полиномском времену, онда је П = НП.
Да бисмо илустровали концепт НП-потпуности, размотримо проблем трговачког путника (ТСП). У овом проблему, продавац мора да посети скуп градова, сваки тачно једном, и врати се у почетни град, са циљем да минимизира укупну удаљеност путовања. Верзија одлуке ТСП-а поставља питање да ли постоји обилазак градова чија је укупна удаљеност мања или једнака датој вредности. Овај проблем је у НП јер се, с обзиром на предложени обилазак, лако може проверити у полиномском времену да ли обилазак задовољава ограничење удаљености. Штавише, ТСП је НП-комплетан јер се сваки проблем у НП може трансформисати у инстанцу ТСП-а у полиномском времену.
Други пример је проблем клика, који пита да ли дати граф садржи комплетан подграф (клику) одређене величине. Овај проблем је у НП јер се, с обзиром на клику кандидата, може проверити у полиномском времену да ли је то заиста клика потребне величине. Проблем клика је такође НП-потпун, што значи да би његово ефикасно решавање имплицирало да се сви НП проблеми могу ефикасно решити.
Проучавање П вс НП и НП-потпуности довело је до развоја различитих техника и алата у теоријској информатици. Једна таква техника је концепт редукција полиномског времена, које се користе да покажу да је један проблем бар једнако тежак као други. Редукција полиномског времена са проблема А на проблем Б је трансформација која претвара инстанце А у инстанце Б у полиномском времену, тако да се решење трансформисане инстанце Б може користити за решавање оригиналне инстанце А. Ако проблем А се може свести на проблем Б у полиномском времену, а Б се може решити у полиномском времену, тада се А такође може решити у полиномском времену.
Други важан концепт је појам апроксимационих алгоритама, који дају скоро оптимална решења за НП-тешке проблеме (проблеме који су бар једнако тешки као НП-потпуни проблеми) у полиномском времену. Иако ови алгоритми не проналазе нужно тачно оптимално решење, они нуде практичан приступ решавању нерешивих проблема пружањем решења која су блиска најбољим могућим. На пример, проблем трговачког путника има добро познати алгоритам апроксимације који гарантује обилазак у оквиру фактора од 1.5 оптималног обиласка за метрички ТСП (где растојања задовољавају неједнакост троугла).
Импликације решавања питања П против НП протежу се изван теоријске рачунарске науке. У криптографији, многе шеме шифровања се ослањају на тврдоћу одређених проблема, као што су факторизација целог броја и дискретни логаритми, за које се верује да су у НП, али не у П. Ако би П било једнако НП, ови проблеми би се потенцијално могли ефикасно решити, компромитујући безбедност криптографских система. Насупрот томе, доказивање П = НП би обезбедило јачу основу за безбедност таквих система.
У оптимизацији, многи проблеми из стварног света, као што су заказивање, рутирање и алокација ресурса, се моделују као НП-тешки проблеми. Ако је П једнако НП, то би значило да се ефикасни алгоритми могу развити за оптимално решавање ових проблема, што би довело до значајног напретка у различитим индустријама. Међутим, тренутна претпоставка да је П = НП довела је до развоја хеуристичких и апроксимационих алгоритама који пружају практична решења за ове проблеме.
Питање П против НП такође има филозофске импликације, јер се дотиче природе математичке истине и граница људског знања. Ако је П једнако НП, то би имплицирало да се свака математичка изјава са кратким доказом може ефикасно открити, потенцијално револуционирајући процес математичког открића. С друге стране, ако је П = НП, то би сугерисало да постоје инхерентна ограничења за оно што се може ефикасно израчунати и верификовати, наглашавајући сложеност и богатство математичких структура.
Упркос недостатку дефинитивног одговора на питање П против НП, истраживања која га окружују довела су до дубљег разумевања сложености рачунара и развоја бројних техника и алата који су имали дубок утицај на рачунарску науку. Потрага за решавањем овог питања наставља да инспирише и изазива истраживаче, подстичући напредак у овој области и проширујући наше разумевање основних граница рачунања.
Остала недавна питања и одговори у вези Сложеност:
- Зар ПСПАЦЕ класа није једнака класи ЕКСПСПАЦЕ?
- Да ли је П класа сложености подскуп класе ПСПАЦЕ?
- Можемо ли доказати да су Нп и П класа исте проналажењем ефикасног полиномског рјешења за било који НП комплетан проблем на детерминистичком ТМ?
- Може ли класа НП бити једнака класи ЕКСПТИМЕ?
- Постоје ли проблеми у ПСПАЦЕ-у за које не постоји познати НП алгоритам?
- Може ли САТ проблем бити НП потпуни проблем?
- Може ли проблем бити у НП класи сложености ако постоји недетерминистичка Тјурингова машина која ће га решити у полиномском времену
- НП је класа језика који имају верификаторе времена полинома
- Да ли је сваки језик без контекста у П класи сложености?
- Постоји ли контрадикција између дефиниције НП као класе проблема одлучивања са верификаторима полиномског времена и чињенице да проблеми у класи П такође имају верификаторе полиномског времена?
Погледајте више питања и одговора у Комплексности
Још питања и одговора:
- Поље: Циберсецурити
- program: ЕИТЦ/ИС/ЦЦТФ Основе теорије сложености рачунара (идите на програм сертификације)
- Лекција: Сложеност (идите на сродну лекцију)
- Тема: НП-комплетност (идите на сродну тему)