
- •Np толық есептердің кластары.
- •Np толықтық деген не?
- •P класы
- •Алгоритм верификациясы
- •Алгоритм дұрыстығы.
- •Алгоритм күрделілігін бағалау.
- •Алгоритм талдауындағы белгілеу жүйесі. Белгілеулерге анықтама бер.
- •Алгоритм тиімділігі дегеніміз не?
- •Алгоритм ұғымы, қасиеттері , түрлері
- •Алгоритмдер теориясы дегеніміз не? Алгоритмдер теориясының шығу тарихы.
- •Алгоритмдер теориясына кіріспе. Алгоритм ұғымы, анықтамасы.
- •P класы.
- •Алгоритмдерді талдау дегеніміз не?
- •Алгоритмдік шешімі болу және болмау ұғымы туралы айт.
- •Алгоритмнің бірігуі дегеніміз не?
- •Алгоритмнің зерттеу салалары
- •Алгоритмнің күрделілігі дегеніміз не?
- •Бағдарламаның дұрыстығын дәлелдеу әдісмтемесі
- •Бинарлық іздеу
- •Бөліп ал да басқар принципіне негізделген алгоритмдерді талдау.
- •Верификация дегеніміз не? Оның әдістері туралы айт?
- •Графта іздеудің қандай әдістері бар?
- •Есептеліну және шешімі болу дегеніміз не?
- •Есептердің алгоритмдік күрделілілігін өлшеу.
- •Күрделіліктің негізгі бағалауларының түрлері қандай?
- •Кірістіру арқылы сұрыптау
- •Қазіргі заманғы алгоритмдер теориясының даму бағыттары мен шешетін негізгі міндеттері.
- •Күрделілік функциясы бойынша алгоритмдерді жіктеу.
- •Қызыл-қара ағаштар.
- •Негізгі алгоритмдік проблемаларға нелер жатады?
- •Параллель алгоритмдердің күрделілігі.
- •Пирамидалық сұрыптау
- •Сараң алгоритмдердің күрделілігін бағалау.
- •Сұрыптау алгоритмдерін талдау, күрделілігін бағалау
- •Таңдау арқылы сұрыптау
- •Тьюринг машинасы дегеніміз не?
- •Шейкер сұрыптауы
- •Шелл арқылы сұрыптау
- •Іздеу ағашында орындалатын операциялар.(-)
- •Іздеудің екілік ағашы
- •Концептуалдық программалау. (-)
- •Алгоритмдерді синтездеуғе кіріспе(-)
- •Концептуалдық программалауды іске асырудың негізгі әдістемелік принциптері
- •Логикалық программаның синтездеу негіздері. Формуланы құрастыру.
- •Программаның синтездеу құрылымы. Есептеуге арналған амалдар
Big-0 нотациясы туралы не білесің?
. Алгоритмнің есептеу тиімділігі өңделетін деректердің санымен, яғни алгоритмдегі басты операциялардың санымен анықталады. Бұл операциялар деректің типіне, санына, реттелуіне тәуелді болады. Көп жағдайда сұрыптау алгоритмдерінде (тізімдер мен бұтақтарда) алгоритм тиімділігін өлшемі ретінде салыстыру қолданылады. Ол массив элементтерінің санына тәуелді.
Мысалы массивтегі минимал элементті табу — бұл қарапайым алгоритм, оның негізгі операциясы элементтерді салыстыру. n элементі бар массив үшін алгоритм n-1 салыстыруды қажет етеді, оның тиімділігінің өлшемі n-ге пропорционал. Басқа алгоритмдер күрделі. . Алмастырып салыстыру алгоритмінде жалпы салыстыру саны:
f(n) = (n — 1) + (n — 2) + . . . + 3 + 2 + 1 = n(n — 1)/2 арифметикалық қатармен анықталады. f(n) функциясы салыстырумен ассоциацияланады. Бұл алгоритмнің салыстыру саны n2 болады.
Big-O нотациясын есептеу тиімділігінің өлшемін беру үшін қолданады. Алгоритмнің есептеу күрделілігінің (оны f(n) функциясы немесе салыстырулар саны дейді) реті O(g(n)) -ге тең болады, мысалы алмастырып сұрыптаудың есептеу күрделілігі О(n2) тең. Сызықты алгоритмнің күрделілігі тізімнің размеріне пропорционал болады, оның O(g(n)) - реті О(n) тең. О(n2) реті бар алгоритмдер квадраттық деп аталады.
Алгоритмдер деректердің бастапқы сұрыпталуына тәуелді болады. Мысалы, реттелген массивтен минимал не максимал элементті табу оңай.
Әдетте Big-О мәні деректер құрылымының алгоритмі үшін көптеген полиномдық, логарифмдік және экспоненци¬альдық функциялардың арасынан таңдалады. Классикалық деректер құрылымы үшін бұл функциялар алгоритмдердің есептелу күрделілігінің жоғарғы шекарасын береді.
Мына кестеде сұрыптау алгоритмдердегі салыстырулар саны п2 мен п log2 n салыстырылады. Алмастырып сұрыптауға қарағанда О(пlog2n) сұрыптау алгоритмі тиімдірек.
n (1/2)n2 S(n) = n2/2 - n - 2
10 50 45
100 5.000 4.950
1000 500.000 499.500
5000 12.500.000 12.497.500
10000 50.000.000 49/995.000
n n2 n log2n
5 25 11,6
10 100 33,2
100 10000 664,3
1000 1000000 9965,7
10000 100000000 132877,1
Np толық есептердің кластары.
Классикалық теорияда есептер P-күрделі, NP- күрделі, экспоненциальды күрделі және т.б. сияқты күрделілік кластары бойынша жіктеледі.
P класына детерминделген есептеу машинасында (мысалы Тьюринг машинасында) бастапқы деректер көлеміне полиномды түрде тәуелді болатын уақытта шешілетін есептер жатады.
Ал NP класына детерминделмеген есептеу машинасында, яғни келесі күйі алдыңғысымен әрдайым бірмәнді түрде анықтала бермейтін машинада полиномды түрде анықталатын уақытта шешілетін есептер жатады. Мұндай машина жұмысын тармақталған процесс түрінде көрсетуге болады: қандай да бір процестің бұтағында жауап табылса, онда есеп шешілген болып саналады.
NP класының тағы бір анықтамасы: NP класына есептің шешімін қосымша ақпарат арқылы полиномды уақытта тексеруге болатын есептер жатады, яғни полиномды уақытта шешімін тексеруге болатын барлық есептер жатады. P класы NP класының құрамына кіреді.
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]).
Классикалық теорияда есептер P-күрделі, NP- күрделі, экспоненциальды күрделі және т.б. сияқты күрделілік кластары бойынша жіктеледі.
P класына детерминделген есептеу машинасында (мысалы Тьюринг машинасында) бастапқы деректер көлеміне полиномды түрде тәуелді болатын уақытта шешілетін есептер жатады.
Ал NP класына детерминделмеген есептеу машинасында, яғни келесі күйі алдыңғысымен әрдайым бірмәнді түрде анықтала бермейтін машинада полиномды түрде анықталатын уақытта шешілетін есептер жатады. Мұндай машина жұмысын тармақталған процесс түрінде көрсетуге болады: қандай да бір процестің бұтағында жауап табылса, онда есеп шешілген болып саналады.
NP класының тағы бір анықтамасы: NP класына есептің шешімін қосымша ақпарат арқылы полиномды уақытта тексеруге болатын есептер жатады, яғни полиномды уақытта шешімін тексеруге болатын барлық есептер жатады. P класы NP класының құрамына кіреді.
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-толық есептері екі шарттың орындалуын талап етеді:
3) есеп NP класына тиесілі болу керек
4) оған NP класының барлық есептері полиномды түрде келтірілуі тиіс.
Теорема NPC класына тиесілі полиномды шешу алгоритмі бар есеп бар болса, онда Р класы NP класымен тең болады, яғни P = NP ([2]).