Кіріспе

Бір мәселені екіншісі арқылы шешу әдісі

Есептеу күрделілігі теориясында полиномиалдық уақыт азайту – бір мәселені екіншісін пайдаланып шешу әдісі. Егер екінші мәселені шешетін гипотетикалық процедура болса, онда бірінші мәселені екінші мәселенің кіріс деректеріне түрлендіру (азайту) және осы процедураны бір немесе бірнеше рет шақыру арқылы шешуге болады. Бірінші мәселені екіншісіне түрлендіруге кеткен уақыт пен процедураны шақыру саны полиномиалды болса, онда бірінші мәселе полиномиалдық уақыт бойынша екінші мәселеге айналдырылады. Полиномиалдық уақыт азайту бірінші мәселенің екіншісінен қиын емес екенін көрсетеді, себебі егер екінші мәселе үшін тиімді алгоритм болса, онда бірінші мәселе үшін де тиімді алгоритм болады. Кері тұжырым бойынша, егер бірінші мәселе үшін тиімді алгоритм болмаса, онда екінші мәселе үшін де жоқ. Ең жалпы азайтулар – Тьюринг азайтулары, ал ең шектеулілері – көптен біреу азайтулары, ал шындық кестесі азайтулары олардың арасындағы орынды алып жатады.

Көп-бірлік азайтулар

Полиномиалдық уақыттағы көп-бір редукция – А проблемасынан В проблемасына (әдетте екеуі де шешім проблемалары болуы керек) – А проблемасының кіріс деректерін В проблемасының кірісіне полиномиалдық уақытта түрлендіретін алгоритм, мұнда түрлендірілген проблеманың нәтижесі бастапқы проблеманың нәтижесімен сәйкес келеді. А проблемасының x мысалы осы түрлендіруді қолдану арқылы В проблемасының y мысалын алуға болады, содан кейін y-ды В проблемасы үшін алгоритмге кіріс ретінде беріп, оның нәтижесін қайтару арқылы шешіледі. Полиномиалдық уақыттағы көп-бір редукциялар Ричард Карптың атымен аталған полиномиалдық түрлендірулер немесе Карп редукциялары деп те аталады. Мұндай редукция "≤" немесе "≼" арқылы белгіленеді.

Тьюрингтік қысқартулар

Полиномиялық уақыттағы Тьюринг редукциясы – А проблемасын В проблемасының субрутинасына полиномиялық санда қоңырау шалу арқылы және сол субрутиналарға қоңырау шалудан тыс полиномиялық уақытты пайдалану арқылы шешетін алгоритм. Полиномиялық уақыт Тьюринг редукциялары Стивен Кук есімімен Кук редукциялары деп те аталады. Мұндай редукцияны полиномиялық уақытты көп-бірге редукция деп белгілеуге болады. Бұл редукциялар басқа күрделік сыныптары үшін, соның ішінде PSPACE-толық тілдері мен EXPTIME-толық тілдері үшін толық проблемаларды анықтау үшін қолданылған. P класындағы (полиномиялық уақыт шешім проблемаларының класы) әрбір шешім мәселесі, тривиалды емес әрбір басқа шешім мәселесіне (тривиалды емес дегеніміз, әрбір кіріс бірдей шығыс емес) полиномиялық уақытты көп-бірге редукция арқылы келтірілуі мүмкін. А проблемасының бір мысалын В-ға түрлендіру үшін, А-ны полиномиялық уақытта шешіп, содан кейін шешімді әртүрлі жауаптары бар В проблемасының екі мысалының біреуін таңдау үшін пайдаланыңыз. Сондықтан, P ішіндегі L, NL, NC және P сияқты күрделік сыныптары үшін толық тілдерді анықтау үшін полиномиялық уақыт редукцияларын қолдануға болмайды: егер олар осылай қолданылса, P-дегі әрбір тривиалды емес мәселе толық болар еді. Оның орнына, логикалық кеңістік редукциясы немесе NC редукциясы сияқты нашар редукциялар осы сыныптар үшін толық проблемалардың сыныптарын анықтау үшін қолданылады, мысалы, P-толық проблемалары.

Күрделілік сыныптарын анықтау

NP, PSPACE және EXPTIME күрделілік сыныптарының анықтамаларында қысқартулар қолданылмайды: қысқартулар осы сыныптар үшін толық тілдерді анықтағанда ғана зерттеледі. Дегенмен, кейбір жағдайларда күрделілік класы қысқарту арқылы анықталуы мүмкін. Егер C кез келген шешім есеп болса, онда C күрделілік класын A тілдерінен тұратын ретінде анықтауға болады, онда C автоматты түрде C үшін толық болады, бірақ C-де басқа да толық есептер болуы мүмкін. Мұның мысалы – нақты сандардың экзистенциалдық теориясынан анықталған күрделілік класы, ол NP-ге қиын және PSPACE-де жататындығы белгілі, бірақ NP, PSPACE немесе полиномдық иерархиядағы кез келген тіл үшін толық емес. Бұл – нақты сандардың экзистенциалдық теориясына полиномдық уақытта көптеген бір-бірге қысқартуларға ие проблемалардың жиынтығы; оның басқа да бірнеше толық есептері бар, мысалы, бағытталмаған графтың тікбұрышты қиылысу санын анықтау. класындағы әрбір есеп PSPACE-ге жататын қасиетке ие болады, ал әрбір толық есеп NP-ге қиын болады. Сол сияқты, GI күрделілік класы граф изоморфизмі есебіне дейін қысқартуға болатын есептерден тұрады. Граф изоморфизмі NP және co AM-ге жататындығы белгілі болғандықтан, осы кластағы әрбір есеп үшін де осы айтуға болады. Есеп осы сынып үшін толық болса, онда ол GI толық болады; граф изоморфизмінің өзі GI толық, сондай-ақ басқа да бірнеше байланысты есептер де GI толық.