Графтағы алгоритмдері. Дейкстра алгоритмі.

Тақырып бойынша 11 материал табылды

Графтағы алгоритмдері. Дейкстра алгоритмі.

Материал туралы қысқаша түсінік
Графтағы алгоритмдері. Дейкстра алгоритмі.
Материалдың қысқаша нұсқасы
img_page_1
Жүктеу
bolisu
Бөлісу
ЖИ арқылы жасау
Слайдтың жеке беттері
Графтағы алгоритмдері. Дейкстра алгоритмі.

#1 слайд
Графтағы алгоритмдері. Дейкстра алгоритмі.

1 слайд

Графтағы алгоритмдері. Дейкстра алгоритмі.

Дейкстра алгоритм і деген не және ол не үшін керек?  Ең қысқа жолды табудың мысалын қарастырайық. Қалалық аймақтарды бай

#2 слайд
Дейкстра алгоритм і деген не және ол не үшін керек?  Ең қысқа жолды табудың мысалын қарастырайық. Қалалық аймақтарды байланыстыратын автомобиль жолдарының желісі берілген. Кейбір жолдар бір бағытта жүреді. Қала орталығынан ауданның әр қаласына ең қысқа жолдарды табыңыз.  Бұл мәселені шешу үшін Дайкстра алгоритмін - 1959 жылы голландиялық ғалым Э.Дейкстра ойлап тапқан графиктер бойынша алгоритмді қолдануға болады. Графтың бір шыңынан басқаларына дейін ең қысқа қашықтықты табады. Теріс салмақ жиектері жоқ графиктер үшін ғана жұмыс істейді.

2 слайд

Дейкстра алгоритм і деген не және ол не үшін керек?  Ең қысқа жолды табудың мысалын қарастырайық. Қалалық аймақтарды байланыстыратын автомобиль жолдарының желісі берілген. Кейбір жолдар бір бағытта жүреді. Қала орталығынан ауданның әр қаласына ең қысқа жолдарды табыңыз.  Бұл мәселені шешу үшін Дайкстра алгоритмін - 1959 жылы голландиялық ғалым Э.Дейкстра ойлап тапқан графиктер бойынша алгоритмді қолдануға болады. Графтың бір шыңынан басқаларына дейін ең қысқа қашықтықты табады. Теріс салмақ жиектері жоқ графиктер үшін ғана жұмыс істейді.

Мысал  1 шыңнан басқаларына дейін ең қысқа қашықтықты табу талап етілсін.  Шеңберлер шыңдарды, сызықтар олардың арасындағы ж

#3 слайд
Мысал  1 шыңнан басқаларына дейін ең қысқа қашықтықты табу талап етілсін.  Шеңберлер шыңдарды, сызықтар олардың арасындағы жолдарды (графиктің шеттері) көрсетеді. Шеңберлер төбелердің сандарын көрсетеді, шеттерінен жоғары олардың салмағы - жолдың ұзындығы көрсетілген. Әр шыңның жанында қызыл затбелгі бар - бұл шыңға 1 шыңнан ең қысқа жолдың ұзындығы.

3 слайд

Мысал  1 шыңнан басқаларына дейін ең қысқа қашықтықты табу талап етілсін.  Шеңберлер шыңдарды, сызықтар олардың арасындағы жолдарды (графиктің шеттері) көрсетеді. Шеңберлер төбелердің сандарын көрсетеді, шеттерінен жоғары олардың салмағы - жолдың ұзындығы көрсетілген. Әр шыңның жанында қызыл затбелгі бар - бұл шыңға 1 шыңнан ең қысқа жолдың ұзындығы.

Инициализация  Метка самой вершины 1 полагается равной 0, метки остальных вершин – недостижимо большое число (в идеале — бес

#4 слайд
Инициализация  Метка самой вершины 1 полагается равной 0, метки остальных вершин – недостижимо большое число (в идеале — бесконечность). Это отражает то, что расстояния от вершины 1 до других вершин пока неизвестны. Все вершины графа помечаются как непосещенные.

4 слайд

Инициализация  Метка самой вершины 1 полагается равной 0, метки остальных вершин – недостижимо большое число (в идеале — бесконечность). Это отражает то, что расстояния от вершины 1 до других вершин пока неизвестны. Все вершины графа помечаются как непосещенные.

Бірінші қадам  1 шыңында минималды затбелгі бар, оның көршілері - 2, 3 және 6 шыңдары. Біз шыңның көршілерін кезекпен айналып

#5 слайд
Бірінші қадам  1 шыңында минималды затбелгі бар, оның көршілері - 2, 3 және 6 шыңдары. Біз шыңның көршілерін кезекпен айналып өтеміз.  1 шыңының бірінші көршісі - 2 шыңы, өйткені оған жол ұзындығы минималды. 1 шыңы арқылы өтетін жолдың ұзындығы 1 шыңына дейінгі ең қысқа қашықтықтың қосындысына (оның белгісінің мәні) және 1-ден 2-ге дейінгі жиектің ұзындығына тең, яғни 0 + 7 = 7. Бұл 2-шыңның қазіргі таңбасынан аз (10000), сондықтан 2-шыңның жаңа белгісі 7-ге тең.  Сол сияқты барлық басқа көршілер үшін жол ұзындығын табамыз (3 және 6 шыңдары).  1 шыңының барлық көршілері тексеріледі. 1 шыңына дейінгі ең аз қашықтық соңғы болып саналады және қайта қарауға жатпайды. 1 шыңы барған ретінде белгіленеді.

5 слайд

Бірінші қадам  1 шыңында минималды затбелгі бар, оның көршілері - 2, 3 және 6 шыңдары. Біз шыңның көршілерін кезекпен айналып өтеміз.  1 шыңының бірінші көршісі - 2 шыңы, өйткені оған жол ұзындығы минималды. 1 шыңы арқылы өтетін жолдың ұзындығы 1 шыңына дейінгі ең қысқа қашықтықтың қосындысына (оның белгісінің мәні) және 1-ден 2-ге дейінгі жиектің ұзындығына тең, яғни 0 + 7 = 7. Бұл 2-шыңның қазіргі таңбасынан аз (10000), сондықтан 2-шыңның жаңа белгісі 7-ге тең.  Сол сияқты барлық басқа көршілер үшін жол ұзындығын табамыз (3 және 6 шыңдары).  1 шыңының барлық көршілері тексеріледі. 1 шыңына дейінгі ең аз қашықтық соңғы болып саналады және қайта қарауға жатпайды. 1 шыңы барған ретінде белгіленеді.

Екінші қадам  Алгоритмнің 1-қадамы қайталанады. Қаралмаған шыңдардың қайсысын «ең жақын» екенін табыңыз. Бұл 7 деп белгіленген

#6 слайд
Екінші қадам  Алгоритмнің 1-қадамы қайталанады. Қаралмаған шыңдардың қайсысын «ең жақын» екенін табыңыз. Бұл 7 деп белгіленген 2 шыңы.  Біз қайтадан таңдалған шыңның көршілерінің жапсырмаларын азайтуға тырысамыз, оларға екінші шыңнан өтуге тырысамыз. 2 шыңының көршілері - 1, 3 және 4 шыңдары.  1-ші төбеге кіріп үлгерген. 2 шыңының келесі көршісі - 3 шыңы, өйткені онда шыңдардың ең аз жапсырмасы барылмаған деп белгіленеді. Егер сіз оған 2 арқылы барсаңыз, онда мұндай жолдың ұзындығы 17-ге тең болады (7 + 10 = 17). Бірақ үшінші шыңның қазіргі таңбасы 9, ал 9 <17, сондықтан белгі өзгермейді.  2 шыңының тағы бір көршісі - 4 шыңы. Егер сіз оған 2-ден өтсеңіз, онда мұндай жолдың ұзындығы 22-ге тең болады (7 + 15 = 22). 22 <10000 болғандықтан, шың белгісін 4-тен 22-ге дейін қойыңыз.  2 шыңының барлық көршілері қаралды, біз оны барған деп белгілейміз.

6 слайд

Екінші қадам  Алгоритмнің 1-қадамы қайталанады. Қаралмаған шыңдардың қайсысын «ең жақын» екенін табыңыз. Бұл 7 деп белгіленген 2 шыңы.  Біз қайтадан таңдалған шыңның көршілерінің жапсырмаларын азайтуға тырысамыз, оларға екінші шыңнан өтуге тырысамыз. 2 шыңының көршілері - 1, 3 және 4 шыңдары.  1-ші төбеге кіріп үлгерген. 2 шыңының келесі көршісі - 3 шыңы, өйткені онда шыңдардың ең аз жапсырмасы барылмаған деп белгіленеді. Егер сіз оған 2 арқылы барсаңыз, онда мұндай жолдың ұзындығы 17-ге тең болады (7 + 10 = 17). Бірақ үшінші шыңның қазіргі таңбасы 9, ал 9 <17, сондықтан белгі өзгермейді.  2 шыңының тағы бір көршісі - 4 шыңы. Егер сіз оған 2-ден өтсеңіз, онда мұндай жолдың ұзындығы 22-ге тең болады (7 + 15 = 22). 22 <10000 болғандықтан, шың белгісін 4-тен 22-ге дейін қойыңыз.  2 шыңының барлық көршілері қаралды, біз оны барған деп белгілейміз.

Үшінші қадам  Алгоритм қадамын қайталаймыз, 3-шегін таңдаймыз, оны «өңдегеннен» кейін келесі нәтижелерге қол жеткіземіз.

#7 слайд
Үшінші қадам  Алгоритм қадамын қайталаймыз, 3-шегін таңдаймыз, оны «өңдегеннен» кейін келесі нәтижелерге қол жеткіземіз.

7 слайд

Үшінші қадам  Алгоритм қадамын қайталаймыз, 3-шегін таңдаймыз, оны «өңдегеннен» кейін келесі нәтижелерге қол жеткіземіз.

Т өртінші Қадам

#8 слайд
Т өртінші Қадам

8 слайд

Т өртінші Қадам

Бесінші Қадам

#9 слайд
Бесінші Қадам

9 слайд

Бесінші Қадам

Алтыншы Қадам

#10 слайд
Алтыншы Қадам

10 слайд

Алтыншы Қадам

Есеп немен аякталды ?  Осылайша, 1 шыңнан 5 шыңға дейінгі ең қысқа жол 1 - 3 - 6 - 5 шыңдары арқылы өтетін жол болады, өйтке

#11 слайд
Есеп немен аякталды ?  Осылайша, 1 шыңнан 5 шыңға дейінгі ең қысқа жол 1 - 3 - 6 - 5 шыңдары арқылы өтетін жол болады, өйткені осылайша біз 20-ға тең минималды салмақ аламыз.  Ең қысқа жолдың шығуын қарастырайық. Біз әр шыңның жол ұзындығын білеміз, енді шыңдарды соңынан қарастырамыз. Соңғы шыңды қарастырайық (бұл жағдайда 5 шың), және ол байланысқан барлық шыңдар үшін сәйкес шеттің салмағын соңғы шыңның жол ұзындығынан шығару арқылы жол ұзындығын табамыз.  Сонымен, 5 шыңының ұзындығы 20-ға тең, ол 6 және 4 шыңдарымен байланысқан.  6 шыңы үшін біз салмақты 20 - 9 = 11 аламыз (сәйкес келеді).  4 шыңы үшін біз 20 - 6 = 14 салмағын аламыз (сәйкес келмеді).  Егер нәтижесінде біз қарастырылып отырған шыңның жол ұзындығымен сәйкес келетін мән алсақ (бұл жағдайда 6 шың), онда дәл осы жерден соңғы шыңға көшу жүзеге асырылды. Бұл шыңды біз қалаған жолмен белгілейміз.  Әрі қарай, біз 6-шыңға жеткен шекті анықтаймыз. Сонымен, біз басымызға жеткенше.  Егер осындай траверстің нәтижесінде қандай да бір қадамда бізде бірнеше шыңдар үшін бірдей мәндер болса, онда олардың кез-келгенін алуға болады - бірнеше жолдың ұзындығы бірдей болады.

11 слайд

Есеп немен аякталды ?  Осылайша, 1 шыңнан 5 шыңға дейінгі ең қысқа жол 1 - 3 - 6 - 5 шыңдары арқылы өтетін жол болады, өйткені осылайша біз 20-ға тең минималды салмақ аламыз.  Ең қысқа жолдың шығуын қарастырайық. Біз әр шыңның жол ұзындығын білеміз, енді шыңдарды соңынан қарастырамыз. Соңғы шыңды қарастырайық (бұл жағдайда 5 шың), және ол байланысқан барлық шыңдар үшін сәйкес шеттің салмағын соңғы шыңның жол ұзындығынан шығару арқылы жол ұзындығын табамыз.  Сонымен, 5 шыңының ұзындығы 20-ға тең, ол 6 және 4 шыңдарымен байланысқан.  6 шыңы үшін біз салмақты 20 - 9 = 11 аламыз (сәйкес келеді).  4 шыңы үшін біз 20 - 6 = 14 салмағын аламыз (сәйкес келмеді).  Егер нәтижесінде біз қарастырылып отырған шыңның жол ұзындығымен сәйкес келетін мән алсақ (бұл жағдайда 6 шың), онда дәл осы жерден соңғы шыңға көшу жүзеге асырылды. Бұл шыңды біз қалаған жолмен белгілейміз.  Әрі қарай, біз 6-шыңға жеткен шекті анықтаймыз. Сонымен, біз басымызға жеткенше.  Егер осындай траверстің нәтижесінде қандай да бір қадамда бізде бірнеше шыңдар үшін бірдей мәндер болса, онда олардың кез-келгенін алуға болады - бірнеше жолдың ұзындығы бірдей болады.

Дейкстра алгоритмінің іске асуы  Квадрат матрица графиктің салмағын сақтау үшін қолданылады. Жолдар мен бағандардың тақырып

#12 слайд
Дейкстра алгоритмінің іске асуы  Квадрат матрица графиктің салмағын сақтау үшін қолданылады. Жолдар мен бағандардың тақырыптарында графиктің шыңдары бар. Ал графикалық доғалардың салмақтары кестенің ішкі ұяшықтарына орналастырылған. Графикте циклдар жоқ, сондықтан матрицаның негізгі диагоналында нөлдік мәндер бар.

12 слайд

Дейкстра алгоритмінің іске асуы  Квадрат матрица графиктің салмағын сақтау үшін қолданылады. Жолдар мен бағандардың тақырыптарында графиктің шыңдары бар. Ал графикалық доғалардың салмақтары кестенің ішкі ұяшықтарына орналастырылған. Графикте циклдар жоқ, сондықтан матрицаның негізгі диагоналында нөлдік мәндер бар.

Файл форматы:
pptx
08.04.2024
227
Жүктеу
ЖИ арқылы жасау
Жариялаған:
Бұл материалды қолданушы жариялаған. Ustaz Tilegi ақпаратты жеткізуші ғана болып табылады. Жарияланған материалдың мазмұны мен авторлық құқық толықтай автордың жауапкершілігінде. Егер материал авторлық құқықты бұзады немесе сайттан алынуы тиіс деп есептесеңіз,
шағым қалдыра аласыз
Қазақстандағы ең үлкен материалдар базасынан іздеу
Сіз үшін 400 000 ұстаздардың еңбегі мен тәжірибесін біріктіріп, ең үлкен материалдар базасын жасадық. Төменде керек материалды іздеп, жүктеп алып сабағыңызға қолдана аласыз
Материал жариялап, аттестацияға 100% жарамды сертификатты тегін алыңыз!
Ustaz tilegi журналы министірліктің тізіміне енген. Qr коды мен тіркеу номері беріледі. Материал жариялаған соң сертификат тегін бірден беріледі.
Оқу-ағарту министірлігінің ресми жауабы
Сайтқа 5 материал жариялап, тегін АЛҒЫС ХАТ алыңыз!
Қазақстан Республикасының білім беру жүйесін дамытуға қосқан жеке үлесі үшін және де Республика деңгейінде «Ustaz tilegi» Республикалық ғылыми – әдістемелік журналының желілік басылымына өз авторлық материалыңызбен бөлісіп, белсенді болғаныңыз үшін алғыс білдіреміз!
Сайтқа 25 материал жариялап, тегін ҚҰРМЕТ ГРОМАТАСЫН алыңыз!
Тәуелсіз Қазақстанның білім беру жүйесін дамытуға және білім беру сапасын арттыру мақсатында Республика деңгейінде «Ustaz tilegi» Республикалық ғылыми – әдістемелік журналының желілік басылымына өз авторлық жұмысын жариялағаны үшін марапатталасыз!
Министірлікпен келісілген курстар тізімі