- •Np толық есептердің кластары.
- •Np толықтық деген не?
- •P класы
- •Алгоритм верификациясы
- •Алгоритм дұрыстығы.
- •Алгоритм күрделілігін бағалау.
- •Алгоритм талдауындағы белгілеу жүйесі. Белгілеулерге анықтама бер.
- •Алгоритм тиімділігі дегеніміз не?
- •Алгоритмдер теориясы дегеніміз не? Алгоритмдер теориясының шығу тарихы.
- •Алгоритмдер теориясына кіріспе. Алгоритм ұғымы, анықтамасы.
- •Алгоритм ұғымы, қасиеттері , түрлері
- •P класы.
- •Алгоритмдерді талдау дегеніміз не?
- •Алгоритмдік шешімі болу және болмау ұғымы туралы айт.
- •Алгоритмнің бірігуі дегеніміз не?
- •Алгоритмнің зерттеу салалары
- •Алгоритмнің күрделілігі дегеніміз не?
- •Бағдарламаның дұрыстығын дәлелдеу әдісмтемесі
- •Бинарлық іздеу
- •Бөліп ал да басқар принципіне негізделген алгоритмдерді талдау.
- •Верификация дегеніміз не? Оның әдістері туралы айт?
- •Графта іздеудің қандай әдістері бар?
- •Есептеліну және шешімі болу дегеніміз не?
- •Есептердің алгоритмдік күрделілілігін өлшеу.
- •Күрделіліктің негізгі бағалауларының түрлері қандай?
- •Кірістіру арқылы сұрыптау
- •Қазіргі заманғы алгоритмдер теориясының даму бағыттары мен шешетін негізгі міндеттері.
- •Күрделілік функциясы бойынша алгоритмдерді жіктеу.
- •Қызыл-қара ағаштар.
- •Негізгі алгоритмдік проблемаларға нелер жатады?
- •Параллель алгоритмдердің күрделілігі.
- •Пирамидалық сұрыптау
- •Сараң алгоритмдердің күрделілігін бағалау.
- •Сұрыптау алгоритмдерін талдау, күрделілігін бағалау
- •Таңдау арқылы сұрыптау
- •Тьюринг машинасы дегеніміз не?
- •Шейкер сұрыптауы
- •Шелл арқылы сұрыптау
- •Іздеу ағашында орындалатын операциялар.(-)
- •Іздеудің екілік ағашы
- •Концептуалдық программалау. (-)
- •Алгоритмдерді синтездеуғе кіріспе(-)
- •Концептуалдық программалауды іске асырудың негізгі әдістемелік принциптері
- •Логикалық программаның синтездеу негіздері. Формуланы құрастыру.
- •Программаның синтездеу құрылымы. Есептеуге арналған амалдар
Np толықтық деген не?
NP-толықтық ұғымын алғаш Кук (Stephen Cook, 1971) пенЛевиным (1973) тәуелсіз түрде енгізді. Ол бір есепті екіншісіне келтіруге негізделді: Егер бірінші есеп пен оны шешетін, нақты проблемаларда дұрыс жауап беретін алгоритм бар болса, ал екінші есептің алгоритмі белгісіз болса, онда екінші есепті бірінші есептің терминдерімен түрлендіріп, бірінші есептің алгоритмімен шешуге болады.
NP класына детерминделмеген есептеу машинасында, яғни келесі күйі алдыңғысымен әрдайым бірмәнді түрде анықтала бермейтін машинада полиномды түрде анықталатын уақытта шешілетін есептер жатады.
NP –толық есептер NP –есептердің ішкі класы, еректешелігі барлық NP –есептерді қандай да бір тәсілдермен NP –толық есептерге келтіруге болады. егер NP –толық есептер үшін P –шешімі табылса, онда барлық NP – класының есептері үшін P –шешім табылады.
Есеп полиномды, яғни P класына жатады деп аталады, егер осы есепті O(nk) уақытта шешетін k константа мен алгоритм бар болса, мұндағы п алгоритмнің битпен берілген ұзындығы.
P класы
P класына детерминделген есептеу машинасында (мысалы Тьюринг машинасында) бастапқы деректер көлеміне полиномды түрде тәуелді болатын уақытта шешілетін есептер жатады.
NP класына детерминделмеген есептеу машинасында, яғни келесі күйі алдыңғысымен әрдайым бірмәнді түрде анықтала бермейтін машинада полиномды түрде анықталатын уақытта шешілетін есептер жатады.
NP –толық есептер NP –есептердің ішкі класы, еректешелігі барлық NP –есептерді қандай да бір тәсілдермен NP –толық есептерге келтіруге болады. егер NP –толық есептер үшін P –шешімі табылса, онда барлық NP – класының есептері үшін P –шешім табылады.
Есеп полиномды, яғни P класына жатады деп аталады, егер осы есепті O(nk) уақытта шешетін k константа мен алгоритм бар болса, мұндағы п алгоритмнің битпен берілген ұзындығы.
Алгоритм верификациясы
Верифика́ция (лат тілінен алғанда verus — «шынайы» facere — «жасау») сөзін адамның жұмыс жасау ортасына сай көптеген мағынасын алуға болады. Мысалға:
Верификация — тексеріс, тексерушілік, неше түрлі дәлел мен теоретикалық анықтамалар арқылы программалар, алгоритмдер, процедураларды растау әдісі, ол әдіс көбіне эталонды растаулармен салыстыра жүргізіледі. Ол принцип алғашқыда вена үйірмесінде қарастырылды.
Верификация — эталонды шарттарды өте отырып оларды өорытынды өніммен салыстыру әдісі.
Дәлелдеу, растау процесі кезінде құбылыстар немесе заттар тексерісі кезінде негізінен қолданылатын түсініктер:
Гипотеза — постулаттар, түсініктер, дәлелдеулерді негізге ала отырып шыққан толық расталмаған және ойлаулар арөылы ғана жеткізіліп отырған ұғымдар.
Концепция — растайтын дәлелі бар не жоқ модель.
Теория — алдын ала берілген растауларға сене отырып жасалған максималды түрде жақын түсінік..
Алгоритм дұрыстығы.
Бағдарламалар мен олардың ерекшеліктерін дәлелдеудің формальды тәсілдері
БҚ анализінің дәстүрді тәсілдері бағдарламаның дұрыстығын дәлелдеумен байланысты(бағдарлама верификациясы). Бұл бағытқа П. Наура мен Р. Флоидтың жұмыстары бастау берген болды. Онда индуктивті немесе аралық тұжырымдамалық деп бағдарлама нүктесіне жазып қою идеясы түйінделген болатын және индуктивті тұжырымдар сәйкестігіне құрылған бағдарламаның жеке бөлігінің дұрыстығын дәлелдеу мүмкіндігі көрсетілді.(яғни оның алғышарты мен соңғы шартының сәфйкестігі).
Ч. Хоор верификация теориясына іргелі үлес қосты, ол бағдарламаның бөлігінің дұрыстығына кейбір логикалық жүйеде шығару арқылы жүргізу туралы идеялар айтқан болатын, ал Э. Дейкстра болса, бір уақытта алғышарт пен соңғы шарттың сәйкестігін және аяқталуын білдіретін әлсіз алғышарт түсінігін енгізді. Бағдарламаның дұрыстығын дәлелдеу тәсілдері белгілі бір дәрежеде бағдарламалауға пайдасын тигізді. Бұл тәсілдердің бағдарламаның орындалу жолы туралы ойлау тәсілдерін көрсететіні, бағдардамада түсініктеме қалдырудың ыңғайлы жүйесін беретіні және бағдарламалау тілдерінің құрылымдары мен семантикалары арасында өзара байланыс орнататыны айқындалды. Егер бағдарламаның әр түрлі қасиеттерін дәлелдеу немесе бағдарламаларды дәлелдеу теоремасы ретінде «бағдарлама анализі» терминінің кең түсінікті мағынасын қабылдасақ, онда тәсілдердің құндылығы анықталады. Жеке жағдайда бағдарламаның шығыс деректірінің мәндерінің өзгеруін, бағдарлама орындалуы кезінде операциялар санын, циклдың, қолданысқа түспеген бағдарлама бөлігінің бар болуын зерттеуге болады. Осылай, кейбір жеке жағдайларда верификация тәсілдері бағдарламалық кемшіліктерді анықтау үшін де қолданыла береді.
Кейбір логикалық жүйеде шығару түріндегі формалды дәлелдеме толық сенімді, алайда дәлелдемелер өте ұзақ және жиі түсініксіз болады.
