Кіріспе
Көпмүшелік уақытта шешілетін проблемалар класы
Есептеу күрделілігі теориясында P, сондай-ақ PTIME немесе DTIME(nO(1)) деп те аталады, – негізгі күрделілік класы. Ол анықталған Тьюринг машинасы полиномиалдық көлемдегі есептеу уақытын немесе көпмүшелік уақытты пайдалана отырып шешілетін барлық шешім проблемаларын қамтиды. Кобхэмнің тезисі бойынша P – «тиімді шешілетін» немесе «практикалық» есептеу проблемаларының класы. Бұл нақты емес: іс жүзінде P класына жатпайтын кейбір проблемалардың практикалық шешімдері бар, ал P класына жататын кейбіреулерінің жоқ, бірақ бұл пайдалы ереже.
In computational complexity theory, P, also known as PTIME or DTIME(nO(1)), is a fundamental complexity class. It contains all decision problems that can be solved by a deterministic Turing machine using a polynomial amount of computation time, or polynomial time. Cobham's thesis holds that P is the class of computational problems that are "efficiently solvable" or "tractable". This is inexact: in practice, some problems not known to be in P have practical solutions, and some that are in P do not, but this is a useful rule of thumb.
П-дегі елеулі проблемалар
P көптеген табиғи проблемаларды қамтитыны белгілі, соның ішінде сызықтық бағдарламалаудың шешімдік нұсқалары және максималды сәйкестікті табу. 2002 жылы бір санның жай сан екенін анықтау мәселесі P класында екені дәлелденді. Оған қатысты функциялық проблемалар класы FP деп аталады. P үшін бірнеше табиғи проблемалар толық проблемалар болып табылады, олардың ішінде ауыспалы графтардағы st-байланыс (немесе қолжетімділік) проблемасы бар. P толық проблемалары туралы мақалада P класындағы тағы да бірнеше маңызды проблемалар тізімі келтірілген.
Басқа кластармен қатынастар
P-дің жалпылануы NP, бұл полиномиалдық уақытпен жұмыс істейтін детерминистік емес Тьюринг машинасымен шешілетін шешім проблемаларының класы. Балама түрінде, бұл әрбір "иә" жағдайы үшін полиномиалдық өлшемдегі сертификаты бар және сертификаттарды полиномиалдық уақытта жұмыс істейтін детерминистік Тьюринг машинасымен тексеруге болатын шешім проблемаларының класы. "Жоқ" жағдайлары үшін бұл қасиетке ие проблемалар класы co NP деп аталады. P тривиальды түрде NP және co NP жиындарының ішкі жиыны болып табылады; көптеген сарапшылар бұл дұрыс ішкі жиын деп санайды, бірақ бұл сенім (гипотеза) әлі де дәлелденбеген. Тағы бір ашық мәселе – NP = co NP; P = co P екенін ескерсек, теріс жауап P кем дегенде L класына тең екенін білдіреді, бұл логарифмдік мөлшердегі жад кеңістігінде шешілетін проблемалар класы. Жадты пайдаланатын шешім қабылдағыш уақыттан көп уақытты пайдалана алмайды, өйткені бұл мүмкін болатын барлық конфигурациялардың жалпы саны; демек, L – P-нің ішкі жиыны. Тағы бір маңызды мәселе – L = P. Біз P = AL екенін білеміз, бұл логарифмдік жадта жұмыс істейтін кезектесетін Тьюринг машиналарымен шешілетін проблемалар жиыны. P сонымен қатар PSPACE класынан үлкен емес екені белгілі, бұл полиномиалдық кеңістікте шешілетін проблемалар класы. Қайтадан, P = PSPACE мәселесі ашық. Қорыта айтқанда: EXPTIME – экспоненциалдық уақытта шешілетін проблемалар класы. Жоғарыда көрсетілген барлық кластардың ішінде тек екі қатаң кіріктіру белгілі: P EXPTIME класына қатаң кіріктірілген. Салдарынан, барлық EXPTIME қиын проблемалары P класынан тыс жатыр, және жоғарыда P-нің оң жағындағы кем дегенде бір кіріктіру қатаң (іс жүзінде, барлығы үш кіріктіру де қатаң деп есептеледі). L класы PSPACE класына қатаң кіріктірілген. P класындағы ең қиын проблемалар – P-толық проблемалар. P-дің тағы бір жалпылануы – P/poly, немесе Біркелкі емес Полиномиалдық Уақыт. Егер проблема P/poly класына жатса, онда ол кіріс ұзындығына ғана тәуелді кеңес жолы берілген жағдайда детерминистік полиномиалдық уақытта шешіледі. Алайда, NP-ден айырмашылығы, полиномиалдық уақыт машинасы алаяқтық кеңес жолын анықтауы міндетті емес; ол тексеруші емес. P/poly – барлық практикалық проблемаларды, соның ішінде барлық BPP-ді қамтитын үлкен класс. Егер ол NP класын қамтыса, онда полиномиалдық иерархия екінші деңгейге дейін төмендейді. Екінші жағынан, ол кейбір практикалық емес проблемаларды, соның ішінде кейбір шешілмейтін проблемаларды, мысалы, кез келген шешілмейтін проблеманың біртұтас нұсқасын да қамтиды. 1999 жылы Джин И Цай және Д. Сивакумар, Мицунори Огихараның жұмысына сүйене отырып, егер P-толық болатын сиретілген тіл болса, онда L = P екенін көрсетті. P класы BQP класына кіреді, бірақ бұл кіріктіру қатаң ма, жоқ па, белгісіз.
P is also known to be at least as large as L, the class of problems decidable in a logarithmic amount of memory space. A decider using space cannot use more than time, because this is the total number of possible configurations; thus, L is a subset of P. Another important problem is whether L = P. We do know that P = AL, the set of problems solvable in logarithmic memory by alternating Turing machines. P is also known to be no larger than PSPACE, the class of problems decidable in polynomial space. Again, whether P = PSPACE is an open problem. To summarize:
Here, EXPTIME is the class of problems solvable in exponential time. Of all the classes shown above, only two strict containments are known:
P is strictly contained in EXPTIME. Consequently, all EXPTIME hard problems lie outside P, and at least one of the containments to the right of P above is strict (in fact, it is widely believed that all three are strict). L is strictly contained in PSPACE. The most difficult problems in P are P complete problems. Another generalization of P is P/poly, or Nonuniform Polynomial Time. If a problem is in P/poly, then it can be solved in deterministic polynomial time provided that an advice string is given that depends only on the length of the input. Unlike for NP, however, the polynomial time machine doesn't need to detect fraudulent advice strings; it is not a verifier. P/poly is a large class containing nearly all practical problems, including all of BPP. If it contains NP, then the polynomial hierarchy collapses to the second level. On the other hand, it also contains some impractical problems, including some undecidable problems such as the unary version of any undecidable problem. In 1999, Jin Yi Cai and D. Sivakumar, building on work by Mitsunori Ogihara, showed that if there exists a sparse language that is P complete, then L = P.
P is contained in BQP, it is unknown whether the containment is strict.
Қасиеттері
Полиномиалдық уақыт алгоритмдері композиция бойынша жабық. Бұл туралы интуитивті түрде айтқанда, егер функцияны шақырулар тұрақты уақыт деп есептегенде полиномиалдық уақытта жұмыс істейтін функция жазылса, ал шақырылған функциялардың өзі полиномиалдық уақытты қажет ететін болса, онда бүкіл алгоритм полиномиалдық уақыт алады. Мұның бір салдары – P классы өзі үшін төмен. Бұл сонымен қатар P классының машинаға тәуелсіз деп есептелуінің басты себептерінің бірі; полиномиалдық уақытта симуляциялана алатын кез келген машинаның мүмкіндігі, мысалы, тікелей қол жеткізу, негізгі полиномиалдық уақыт алгоритмімен біріктіріліп, оны қарапайым машинадағы полиномиалдық уақыт алгоритміне келтіруге болады. P классындағы тілдер кері операция, қиылысу, бірігу, тізбектеу, Клейне жабылуы, кері гомоморфизм және толықтыру операциялары бойынша да жабық.
Полиномиалдық уақыт алгоритмдерінің таза болу дәлелдемелері
Кейбір проблемалар полиномиалдық уақытта шешілетіні белгілі, бірақ оларды шешуге арналған нақты алгоритм әлі табылған жоқ. Мысалы, Робертсон-Сеймур теоремасы торға орналастырыла алатын графтар жиынын сипаттайтын (мысалы) тыйым салынған минорлардың шекті тізімі бар екенін кепілдіктейді; одан әрі, Робертсон мен Сеймур графтың берілген графикті минор ретінде қамтитынын анықтау үшін O(n³) алгоритмінің бар екенін көрсетті. Бұл, берілген графикті торға орналастыруға болатынын анықтау үшін полиномиалдық уақыт алгоритмінің бар екендігін дәлелдейді, бірақ осы мәселе үшін нақты алгоритм әлі белгісіз.
Басқа сипаттамалар
Тасушалы күрделілікте P, реттелген құрылымдардағы ең аз бекітілген нүкте операторы қосылған бірінші реттік логика, яғни FO(LFP)-да өрнектелетін проблемалар ретінде сипатталады. Immerman-ның 1999 жылғы тасушалы күрделілік туралы оқулығында Immerman бұл нәтижені Варди мен өзіне жатқызады. 2001 жылы PTIME (оң) диапазон тізбектеме грамматикасына сәйкес екені жарияланды. P, шешім емес проблемалар үшін алгоритмдік күрделілік класы ретінде де анықталуы мүмкін (мысалы, 2-қанағаттандыру мысалының шешімін полиномдық уақытта табу, сәйкес шешім проблемасы үшін полиномдық алгоритмді автоматты түрде береді). Бұл жағдайда P, NP-нің ішкі жиыны емес, бірақ P∩DEC болып табылады, мұнда DEC – шешім проблемаларының класы.
Тарих
Козен Кобам мен Эдмондстың "полиномиялық уақыт түсінігін ойлап тапқандарына" қатысты мәлімдейді. Кобхам тиімді алгоритмдерді сипаттаудың сенімді жолы ретінде бұл класты ойлап тапты, бұл Кобхамның диссертациясына әкелді. Дегенмен, Х. С. Поклингтон 1910 жылғы мақаласында квадраттық конгруэнцияларды шешуге арналған екі алгоритмді талдап, біреуінің "модульдің логарифміне пропорционалды" уақыт алатынын, ал екіншісінің "модульдің өзіне немесе оның квадрат түбіріне" пропорционалды уақыт алатынын байқады, осылайша полиномиялық уақытта жұмыс істейтін алгоритм мен жұмыс істемейтін алгоритм арасындағы нақты айырмашылықты көрсетті.