Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
dain algoritm dina.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
442.58 Кб
Скачать
  1. P класы.

Классикалық теорияда есептер P-күрделі, NP- күрделі, экспоненциальды күрделі және т.б. сияқты күрделілік кластары бойынша жіктеледі.

P класына детерминделген есептеу машинасында (мысалы Тьюринг машинасында) бастапқы деректер көлеміне полиномды түрде тәуелді болатын уақытта шешілетін есептер жатады.

Ал NP класына детерминделмеген есептеу машинасында, яғни келесі күйі алдыңғысымен әрдайым бірмәнді түрде анықтала бермейтін машинада полиномды түрде анықталатын уақытта шешілетін есептер жатады. Мұндай машина жұмысын тармақталған процесс түрінде көрсетуге болады: қандай да бір процестің бұтағында жауап табылса, онда есеп шешілген болып саналады.

P класы мен NP класының эквиваленттілігі (яғни кез келген NP -есептің P –шешімін табу) туралы сұрақ қазіргі кезде алгоритм күрделілігінң теориясының басты сұрағы.

NP –толық есептер NP –есептердің ішкі класы, еректешелігі барлық NP –есептерді қандай да бір тәсілдермен NP –толық есептерге келтіруге болады.

Бұдан шығатын қорытынды: егер NP –толық есептер үшін P –шешімі табылса, онда барлық NP – класының есептері үшін P –шешім табылады.

NP –толық есептің мысалына конънктивті формадағы есеп жатады.

Р класы (полиномды күрделілігі бар кластар)

Есеп полиномды, яғни P класына жатады деп аталады, егер осы есепті O(nk) уақытта шешетін k константа мен алгоритм бар болса, мұндағы п алгоритмнің битпен берілген ұзындығы.

  • Көптеген P класының нақты есептерінде константа k < 6;

P=NP проблемасы

P класының табиғи тұйықтығы бар (полиномдардың қосындысы мен көбейтіндісі де полином).

NP класы (полиномды уақытта тексерілетін есептер)

Алғаш Эдмондс жұмыстарында қарастырылып, күрделілілік кластарын енгізген соң, күрделілік теориясының негізгі проблемасы Р = NP айтылды. Мәнісі: Шешімі полиномды күрделілікпен тексерілетін барлық есептерді полиномды уақытта шешуге бола ма? Қазіргі кезде екеуінің тең не тең еместігінің теориялық түрде дәлелдеуі жоқ, тек жорамал бар: Р класы NP класының ішкі жиыны, яғни NP \ Р жиыны бос емес. Бұл жорамал негізінде ТУР-толық есептер класы қарастырылады.

Класс NPC класы (ЖР-толық есептер)

NP-толықтық ұғымын алғаш Кук (Stephen Cook, 1971) пенЛевиным (1973) тәуелсіз түрде енгізді. Ол бір есепті екіншісіне келтіруге негізделді: Егер бірінші есеп пен оны шешетін, нақты проблемаларда дұрыс жауап беретін алгоритм бар болса, ал екінші есептің алгоритмі белгісіз болса, онда екінші есепті бірінші есептің терминдерімен түрлендіріп, бірінші есептің алгоритмімен шешуге болады.

NPC класы мен NP-толық есептері екі шарттың орындалуын талап етеді:

  1. есеп NP класына тиесілі болу керек

  2. оған NP класының барлық есептері полиномды түрде келтірілуі тиіс.

Теорема NPC класына тиесілі полиномды шешу алгоритмі бар есеп бар болса, онда Р класы NP класымен тең болады, яғни P = NP ([2]).

  1. Алгоритмдерді талдау дегеніміз не?

Алгоритм[1], алгорифм (ағылшынша: algorіthm, algorіsmus — Әл-Хорезмидің атынан шыққан) — бастапқы берілген мәліметтермен бір мәнде анықталатын нәтиже алу үшін қай амалды (жұмысты) қандай ретпен орындау қажеттігін белгілейтін есептерді (мәселелерді) шешу (математикалық есеп-қисаптар орындау, техникалық объектілерді жобалау, ғылыми-зерттеу жұмысын жүргізу т.б.) тәсілдерінің дәл сипаттамасы. Алгоритм — математика мен кибернетиканың негізгі ұғымдарының бірі. Агоритмді орындау алгоритмдік процесс деп аталады.

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

  1. Алгоритмдік теориядағы күрделілік кластары.

Алгоритмнің күрделілігі. Big-O-бағалау алгоритмнің орындалу уақытының өлшемін (runtime) береді. Әдетте алгоритмнің жақсы және нашар жағдайлар үшін есептеу тиімділіктері әртүрлі , сондықтан әр нақты жағдай үшін Big-О мәні есептеледі. Егер алгоритм реті —0(1) болса, оның реті коллекциядағы элементтер санына тәуелсіз болады. Бұл алгоритм тұрақты уақыт бірлігі ішінде орындалады, мысалы егер массив соңын көрсететін индекс сақталса, массив элементіне мән меншіктеу реті 0(1) болады. Алгоритм О(п) сызықты (linear). Оның күрделілігі тізім размеріне пропорционал. Реті log2n болатын алгоритмдер логарифмдік (logarithmic) деп аталады. Мұндай күрделілік тізімдерді бірнеше рет ішкі тізімдерге 1/2, 1/4, 1/8 етіп бөлгенде туындайды. Мысалы бинарлық бұтақтарда іздеу алгоритмдерінің күрделілігі орташа және нашар жағдайлар үшін O(log2n) болады. Реті О(п2) болатын алгоритмдер квадраттық (quadratic) деп аталады. Шағын n үшін ғана практикада қолданылады. п екіге артқан сайын алгоритмнің орындалу уақыты 4-ке артады. Реті О(n3) болатын алгоритмдер өте баяу орындалады, кубтық (cubic) уақытты қажет етеді. п екіге артқан сайын алгоритмнің орындалу уақыты 8 есе артады. Оның мысалына графтарға қолданылатын реті О(п3) болатын Уоршел алгоритмі жатады. Күрделілігі О(2п) тең алгоритмде экспоненциальды күрделілік (exponential complexity) болады. Өте баяу орындалатындықтан өте аз п үшін қолданылады. Төмендегі кестеде аталған алгоритмдердің ретінің бағалауы берілген, аз мәнді п үшін кубтық, экспоненциальдық алгоритмдерді қолдану тиімсіз.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]