Eyler yo’li va Eyler siklini aniqlash algoritimi
![Mavzu: “Eyler yo’li va Eyler siklini aniqlash algoritimi”
MUNDARIJA
Kirish ............................................................................................................... 3
1.1. Fon ............................................................................................................ 4
1.2. Eyler yo'li va Eyler tsikli .......................................................................... 5
......................................................................................................................... 5
1.3. Muammo bayoni ....................................................................................... 5
1.4. Maqsad ..................................................................................................... 6
II. Usul ............................................................................................................. 6
2.1. Algoritm dizayni ....................................................................................... 6
2.2. Grafik tasvirlash ....................................................................................... 7
2.3. Ma'lumotlar tuzilmalari ............................................................................ 8
2.4. Psevdokod ................................................................................................ 9
2.5. Murakkablik tahlili ................................................................................. 10
2.6. Amalga oshirish ...................................................................................... 10
III. Natijalar ................................................................................................... 11
3.1. Ish faoliyatini baholash .......................................................................... 12
3.2. Yo'l va siklni aniqlash ............................................................................ 12
3.3. Vaqtning murakkabligi ........................................................................... 13
3.4. Kosmik murakkablik .............................................................................. 13
IV. Munozara ................................................................................................. 14
4.1. Xulosa ..................................................................................................... 14
4.2. Natijalar .................................................................................................. 15
4.3. Cheklovlar .............................................................................................. 16
4.4. Kelajakdagi yo'nalishlar ......................................................................... 16
Xulosa ............................................................................................................ 18
ADABIYOTLAR RO’YXATI ...................................................................... 19
ILOVALAR ................................................................................................... 20
ILOVA 1. Modul N1 boshlang’ich kodi. ................................................ 20
I .Kirish ............................................................................................................. 3
1.1. Fon ........................................................................................................... .4
1.2. Eyler yo'li va Eyler sikli ........................................................................... 5
1.3. Muammo bayoni ...................................................................................... 5
1.4. Maqsad .................................................................................................... 6
II . Usul ............................................................................................................. 6
2.1. Algoritm dizayni ...................................................................................... 6
2.2. Grafik tasvirlash ....................................................................................... 7
2.3. Ma'lumotlar tuzilmalari ............................................................................ 8](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_1.png)
![2.4. Psevdokod ................................................................................................ 9
2.5. Murakkablik tahlili ................................................................................. 11
2.6. Amalga oshirish ...................................................................................... 11
III . Natijalar ................................................................................................... 10
3.1. Ish faoliyatini baholash .......................................................................... 10
3.2. Yo'l va siklni aniqlash ............................................................................ 11
3.3. Vaqtning murakkabligi ........................................................................... 13
3.4. Kosmik murakkablik .............................................................................. 14
IV . Munozaralar ............................................................................................ 15
4.1. Dastur kodi ............................................................................................ 15
4.2. Natijalar .................................................................................................. 16
4.4. Kelajakdagi yo'nalishlar ......................................................................... 17
Xulosa ............................................................................................................ 19
ADABIYOTLAR RO’YXATI ...................................................................... 20
ILOVALAR .................................................................................................. 21
ILOVA 1. Modul N1 boshlang’ich kodi. .............................................. 22](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_2.png)
![Kirish
Ushbu kurs ishi Eyler yo'lini yoki Eyler siklini aniqlash uchun ishlatiladigan
algoritmlarni o'rganadi. Eyler yo'li yoki Eyler sikli - bu har bir chekkaga bir marta
tashrif buyuradigan grafikdagi yo'l yoki sikl. Ushbu kurs ishi ushbu muammoni hal
qilish uchun ishlatiladigan turli xil algoritmlarni tahlil qiladi va ularning
samaradorligini taqqoslaydi. Shuningdek, har bir algoritmning afzalliklari va
kamchiliklari muhokama qilinadi. Tahlil qilinadigan algoritmlar Fleury algoritmi,
Iergolzer algoritmi va Hierholzer va Fleury algoritmidir. Ushbu kurs ishida har bir
algoritmning murakkabligi, vaqt va makonning murakkabligi hamda talab
qilinadigan operatsiyalar soni tahlil qilinadi. Bundan tashqari, ushbu kurs ishi
algoritmlarning nazariy va amaliy jihatlarini va ularni real senariylarda qanday
qo'llash mumkinligini tahlil qiladi. Nihoyat, ushbu kurs ishi Eyler yo‘lini yoki
Eyler siklini aniqlash algoritmlari sohasida kelajakdagi tadqiqot va ishlanmalar
uchun tavsiyalar beradi.](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_3.png)
![1.1. Fon
Eyler yo'llari va sikllari grafik nazariyasida muhim tushunchadir. Ular ikkita
nuqta orasidagi eng qisqa yo'lni yoki shahar bo'ylab sayohat qilishning eng
samarali usulini topish kabi tarmoqlar bilan bog'liq muammolarni hal qilish uchun
ishlatiladi. Eyler yo'li yoki sikli - bu har bir chekkaga bir marta tashrif buyuradigan
grafikdagi yo'l yoki sikl. Bu tushuncha birinchi marta 1736 yilda matematik
Leonhard Eyler tomonidan kiritilgan .
Eyler yo'lini yoki tsiklini topish uchun eng samarali echimni aniqlash uchun
algoritmlardan foydalanish kerak. Ushbu algoritmlar chuqurlikdagi birinchi qidiruv
yoki DFS bilan grafikni kesib o'tish kontseptsiyasiga asoslangan. Ushbu
yondashuv cho'qqidan boshlashni va orqaga qaytishdan oldin har bir novda bo'ylab
iloji boricha o'rganishni o'z ichiga oladi. Grafikni shu tarzda o'rganish orqali eng
samarali yo'l yoki tsiklni aniqlash mumkin.
Eyler yo'li yoki siklini aniqlash uchun ishlatiladigan algoritmlarni ikki
toifaga bo'lish mumkin: aniq algoritmlar va evristik algoritmlar. Aniq algoritmlar
optimal yechimni topishni kafolatlaydigan algoritmlar, evristik algoritmlar esa
maqbul vaqt ichida yaxshi yechim topishga harakat qiladigan algoritmlardir.
Aniq algoritmlarga Fleury algoritmi va Iergolzer algoritmini misol qilib
keltirish mumkin. Fleury algoritmi har doim eng kam sonli uchlari bo'lgan chetni
tanlash printsipiga asoslanadi, Ierholzer algoritmi esa har doim eng ko'p uchlari
bo'lgan chetni tanlash printsipiga asoslanadi.
Evristik algoritmlarga misollar ochko'z algoritm va eng yaqin qo'shni
algoritmini o'z ichiga oladi. Ochko'z algoritm har doim joriy cho'qqiga eng yaqin
bo'lgan chetni tanlash printsipiga asoslanadi, eng yaqin qo'shni algoritm esa har
doim maqsad cho'qqisiga eng yaqin bo'lgan chekkani tanlash printsipiga
asoslanadi.
Ushbu kurs ishida biz Eyler yo‘li yoki siklini aniqlashda qo‘llaniladigan turli
xil algoritmlarni muhokama qilamiz va ularning samaradorligini solishtiramiz.](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_4.png)
![Shuningdek, biz algoritmlarning murakkabligini ko'rib chiqamiz va turli
stsenariylarda turli algoritmlardan foydalanish oqibatlarini muhokama qilamiz.
1.2. Eyler yo'li va Eyler tsikli
Eyler yo'li va Eyler sikli grafik yo'lini aniqlash uchun ishlatiladigan ikkita
muhim algoritmdir. Ular 1735 yilda algoritmlarni birinchi marta ishlab chiqqan
shveytsariyalik matematik Leonhard Eyler sharafiga nomlangan. Eyler yo'li - har
bir chekkaga bir marta tashrif buyuradigan grafikdagi yo'l, Eyler sikli esa har bir
chekkaga bir marta tashrif buyuradigan grafikdagi sikldir. . Grafikning Eyler
yo'lini yoki Eyler siklini aniqlash uchun birinchi qadam grafik bog'langan yoki
bog'lanmaganligini aniqlashdan iborat. Agar grafik bog'lanmagan bo'lsa, u holda
Eyler yo'li yoki siklini topish mumkin emas. Agar grafik ulangan bo'lsa, keyingi
qadam grafikning toq darajali cho'qqilari mavjudligini aniqlashdir. Agar toq
darajali cho'qqilar bo'lmasa, u holda grafik Eyler sikliga ega. Agar toq darajali
cho'qqilar mavjud bo'lsa, u holda grafik Eyler yo'liga ega. Eyler yo'li yoki tsikli
aniqlangandan so'ng, algoritm haqiqiy yo'l yoki siklni aniqlash uchun ishlatilishi
mumkin. Algoritm toq darajali har qanday cho'qqidan boshlab, so'ngra yo'l yoki
tsiklning oxirigacha qirralarni kuzatib boradi. Eyler yo'li yoki sikli keyinchalik
yo'lni yoki aylanishni orqaga qarab kuzatish orqali aniqlanishi mumkin. Eyler yo'li
va Eyler sikli algoritmlari grafik nazariyasida muhim vosita bo'lib, grafikdagi
ikkita nuqta orasidagi eng qisqa yo'lni topish yoki yuk mashinasi uchun eng
samarali marshrutni aniqlash kabi turli muammolarni hal qilish uchun ishlatilishi
mumkin. Ular tarmoqni loyihalashda ham muhimdir, chunki ular tarmoqdagi turli
tugunlarni ulashning eng samarali usulini aniqlash uchun ishlatilishi mumkin.
1.3. Muammo bayoni
Eyler yo'li yoki Eyler sikli - bu har bir chekkaga bir marta tashrif
buyuradigan grafikdagi yo'l yoki tsikl. Bu muammo Eyler yo'li yoki Eyler sikli
muammosi deb nomlanadi. Bu muammo adabiyotlarda keng o‘rganilgan va Eyler
yo‘li yoki siklini aniqlash uchun turli algoritmlar taklif qilingan. Ushbu
algoritmlarni ikki toifaga bo'lish mumkin: aniq algoritmlar va evristik algoritmlar.
Aniq algoritmlar Eyler yo li yoki Eyler sikli muammosiga kafolatlangan yechimniʻ
ta minlovchi algoritmlardir. Bu algoritmlar odatda hisoblash qimmat va katta vaqt
ʼ
va xotirani talab qiladi. Evristik algoritmlar Eyler yo li yoki Eyler sikli masalasiga
ʻ
taxminiy yechimni ta minlovchi algoritmlardir. Bu algoritmlar odatda hisoblash
ʼ](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_5.png)
![jihatidan samarali va kamroq vaqt va xotira talab qiladi. Ushbu dissertatsiyada biz
Eyler yo'lini yoki Eyler tsiklini aniqlash uchun adabiyotda taklif qilingan turli xil
algoritmlarni muhokama qilamiz va ularning ishlashini baholaymiz. Shuningdek,
Eyler yo'li yoki Eyler sikli muammosining turli xil qo'llanilishi va Eyler yo'li yoki
Eyler siklini aniqlash uchun taklif qilingan algoritmlarning oqibatlarini muhokama
qilamiz.
1.4. Maqsad
Ushbu kurs ishinining maqsadi Eyler yo'lini yoki Eyler siklini aniqlash
algoritmlarini o'rganishdir. Tadqiqot savoli - berilgan grafikda Eyler yo'lini yoki
Eyler siklini aniqlashning samarali algoritmini qanday loyihalash. Dissertatsiya
Eyler yo'lini yoki Eyler siklini aniqlash uchun mavjud algoritmlarni ko'rib chiqadi,
har bir algoritmning ishlashini tahlil qiladi va samaraliroq bo'lgan yangi algoritmni
taklif qiladi.
Kurs ishi Eyler yo’li va Eyler sikli, jumladan, ularning ta’riflari va
qo’llanilishi haqida umumiy ma’lumot berishdan boshlanadi. Keyin Eyler
yo'lini yoki Eyler siklini aniqlash uchun mavjud algoritmlarni muhokama
qiladi. Ushbu algoritmlarning ishlashi tahlil qilinadi va taqqoslanadi. Nihoyat,
Eyler yo'lini yoki Eyler siklini aniqlashning yangi algoritmi taklif qilinadi.
Taklif etilayotgan algoritmning ishlashi mavjud algoritmlar bilan taqqoslanadi
va taklif qilingan algoritmning afzalliklari va kamchiliklari muhokama qilinadi.
II . Usul
2.1. Algoritm dizayni
Eyler yo'lini yoki Eyler siklini aniqlash uchun algoritm loyihasi Fleury
algoritmiga asoslangan edi. Algoritm grafikning har bir chetini aynan bir marta
bosib o'tish uchun mo'ljallangan. U grafikning istalgan cho'qqisidan boshlanadi va
yana o'sha cho'qqiga yetguncha yo'ldan boradi.
Algoritm joriy tepaga ulangan ko'rilmagan qirralarni topishdan boshlanadi.
Keyin u eng kichik og'irlikdagi qirrani tanlaydi va uni kesib o'tadi. Keyin algoritm
keyingi cho'qqiga o'tadi va u boshlangan cho'qqiga yetguncha jarayonni
takrorlaydi.
Algoritm sxemani yaratishdan qochadigan tarzda grafikni aylanib o'tish
uchun mo'ljallangan. Bu shuni anglatadiki, algoritm tsikl yaratsa, chekkadan](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_6.png)
![o'tmaydi. Agar algoritm ko'rilmagan chekkalari bo'lmagan cho'qqiga etib borsa, u
oxirgi tashrif buyurgan cho'qqiga qaytib ketadi va boshqa chetni sinab ko'radi.
Algoritm grafikning barcha qirralarini kesib o'tgandan so'ng, u Eyler yo'lini
yoki Eyler siklini tugatgan bo'ladi. Keyin algoritmdan grafikdagi eng qisqa yo‘lni
yoki eng qisqa siklni topish uchun foydalanish mumkin.
2.2. Grafik tasvirlash
Eyler yo'li yoki siklining grafik tasviri yo'naltirilgan grafik bo'lib, G = (V,
E), bu erda V - cho'qqilar to'plami va E - qirralar to'plami. Har bir chekka bir
cho'qqidan ikkinchisiga yo'naltirilgan chekka bilan ifodalanadi. Qirralar Eyler yo'li
yoki sikli oladigan yo'llarni ifodalaydi. Grafik qo'shnilik ro'yxati bilan ifodalanadi,
bu barcha uchlari va ular bog'langan qirralarning ro'yxati. Grafikdagi barcha
cho'qqilarni bog'laydigan yo'llarni topish orqali Eyler yo'lini yoki tsiklini aniqlash
uchun qo'shnilik ro'yxati ishlatiladi.
Class hosil qilinayapti.Unga qirra qo’shilayapti:
class Graph {
int V;
vector<int> *adj;
public:
Graph(int V);
void addEdge(int v1, int v2);
void DFS(int v);
void DFS();
};
Graph::Graph(int V) {
this->V = V;
adj = new vector<int>[V];
}
Eyler yo'li yoki siklini topish algoritmi har bir cho'qqining darajasini
topishdan boshlanadi. Cho'qqining darajasi - unga bog'langan qirralarning soni.
Agar har bir cho‘qqining darajasi juft bo‘lsa, grafik Eyler sikliga ega bo‘ladi. Agar
ikkita cho'qqining darajasi toq bo'lsa, u holda grafik Eyler yo'liga ega.
Har bir cho'qqining darajasi aniqlangandan so'ng, algoritm grafikdagi barcha
cho'qqilarni bog'laydigan yo'llarni topadi. Bu birinchi chuqur qidiruv algoritmi
yordamida amalga oshiriladi. Chuqurlikdagi birinchi qidiruv algoritmi cho'qqidan
boshlanadi va unga](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_7.png)
![bog'langan barcha yo'llarni o'rganadi. Agar grafikdagi barcha cho'qqilarni
bog'laydigan yo'l topilsa, u holda algoritm Eyler yo'li yoki tsiklini topdi.
Eyler yo'li yoki tsikli topilgach, algoritm grafikdagi cho'qqilarga tashrif
buyurish tartibini aniqlaydi. Bu topologik tartiblash algoritmi yordamida amalga
oshiriladi. Topologik saralash algoritmi grafikdagi har bir cho'qqiga ma'lum
tartibda tashrif buyuradi, eng yuqori darajali cho'qqidan boshlab va eng past
darajali cho'qqi bilan tugaydi. Keyinchalik bu tartib Eyler yo'li yoki sikli olishi
kerak bo'lgan yo'lni aniqlash uchun ishlatiladi.
Eyler yo‘li yoki siklini aniqlash algoritmi grafikdagi barcha cho‘qqilarni
bog‘lovchi yo‘llarni topishning samarali usuli hisoblanadi. Bundan tashqari, u turli
dasturlash tillarida amalga oshirilishi mumkin bo'lgan oddiy algoritmdir.
2.3. Ma'lumotlar tuzilmalari
Ushbu algoritm uchun ishlatiladigan ma'lumotlar strukturasi grafikdir.
Grafik cho'qqilar (yoki tugunlar) va qirralar (yoki yoylar) to'plamidan iborat. Har
bir chekka ikkita uchni bog'laydi va yo'naltirilgan yoki yo'naltirilmagan bo'lishi
mumkin. Eyler yo'li yoki Eyler siklini grafik sifatida tasvirlash mumkin, har bir
cho'qqi yo'l bo'ylab nuqtani va har bir chekka bir nuqtadan ikkinchisiga o'tishni
ifodalaydi.
Algoritm avval berilgan ma'lumotlardan grafik yaratish orqali ishlaydi. Bu
har biri yo'l bo'ylab nuqtani ifodalovchi cho'qqilar to'plamini va har biri bir
nuqtadan ikkinchisiga o'tishni ifodalovchi qirralar to'plamini yaratishni o'z ichiga
oladi. Keyin algoritm grafaning Eyler ekanligini, ya'ni Eyler yo'li yoki Eyler siklini
o'z ichiga olganligini tekshiradi. Agar grafik Eyler bo'lsa, algoritm birinchi
navbatda chuqur izlanishda grafikni aylanib o'tish orqali Eyler yo'lini yoki Eyler
siklini topadi. Algoritm joriy yo‘lni kuzatish uchun stekdan foydalanadi va
chekkalari qolgan cho‘qqiga yetganda orqaga qaytadi. Agar grafik Eyler bo'lmasa,
algoritm xatoni qaytaradi.
Eyler yo'li yoki Eyler sikli topilgach, algoritm yo'l yoki tsikl bo'ylab
cho'qqilar ketma-ketligini qaytaradi. Keyinchalik bu cho'qqilar ketma-ketligi Eyler
yo'lini yoki Eyler siklini aniqlash uchun ishlatilishi mumkin.](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_8.png)
![2.4. Psevdokod
Eyler yo'lini yoki Eyler siklini aniqlash algoritmining psevdokodi
quyidagicha:
1. Bo ’ sh grafikni inisializatsiya qiling G.
2. G grafikni kiriting.
Graph::Graph(int V) {
this->V = V;
adj = new vector<int>[V];
}
void Graph::addEdge(int v1, int v2) {
adj[v1].push_back(v2);
}
void Graph::DFS(int v) {
vector<bool> visited(V, false);
stack<int> s;
s.push(v);
visited[v] = true;
vector<int> result;
while (!s.empty()) {
v = s.top();
s.pop();
result.push_back(v);
for (auto i = adj[v].begin(); i != adj[v].end(); i++) {
if (!visited[*i]) {
s.push(*i);
visited[*i] = true;
}
}
3. G.dagi har bir cho qqining darajasini hisoblang.ʻ
4. Agar barcha cho’qqilar teng darajaga ega bo’lsa, u holda grafik Eyler sikli
hisoblanadi.
5. Agar toq darajali aynan bitta cho'qqi bo'lsa, u holda grafik Eyler yo'lidir.
6. Aks holda, grafik Eyler grafigi emas.
7. Agar grafik Eyler yo'li bo'lsa, cho'qqidan toq darajadan boshlang va
barcha qirralarga tashrif buyurilguncha grafikni kesib o'ting.
8. Agar grafik Eyler sikli bo'lsa, istalgan cho'qqidan boshlang va barcha
qirralarga tashrif buyurilgunga qadar grafikni kesib o'ting.](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_9.png)
![9. Eyler yo'lini yoki Eyler siklini chiqaring.
2.5. Murakkablik tahlili
Eyler yo'lini yoki Eyler siklini aniqlashning murakkabligi ushbu bo'limda
tahlil qilinadi. Algoritmlarning vaqt murakkabligi grafikdagi qirralarning soni
bo'yicha o'lchanadi, "m" bilan belgilanadi.
Shafqatsiz kuchlar algoritmi O(m^2) vaqt murakkabligiga ega. Buning
sababi shundaki, algoritm Eyler yo'li siklining bir qismi yoki yo'qligini tekshirish
uchun algoritm har bir chekkadan ikki marta o'tishi kerak va yana u ilgari bosib
o'tilganligini tekshirishi kerak.
Yaxshilangan algoritm O(m) vaqt murakkabligiga ega. Buning sababi,
algoritm Eyler yo'li siklining bir qismi ekanligini tekshirish uchun har bir
chekkadan faqat bir marta o'tishi kerak. Bu vaqt murakkabligini sezilarli darajada
kamaytiradi.
Samarali algoritm O (m + n) vaqt murakkabligiga ega. Buning sababi
shundaki, algoritm Eyler yo'li siklining bir qismi ekanligini tekshirish uchun har
bir chekkadan faqat bir marta o'tishi kerak, shuningdek, Eyler yo'li/siklining bir
qismi ekanligini tekshirish uchun har bir tugunni bir marta bosib o'tishi kerak. Bu
vaqt murakkabligini yanada sezilarli darajada kamaytiradi.
Xulosa qilib aytganda, takomillashtirilgan va samarali algoritmlar qo'pol
kuch algoritmiga qaraganda yaxshiroq vaqt murakkabligiga ega. Shuning uchun
takomillashtirilgan va samarali algoritmlar Eyler yo'lini yoki Eyler siklini aniqlash
uchun ko'proq mos keladi.
2.6. Amalga oshirish
Eyler yo'lini yoki Eyler siklini aniqlash algoritmlarini amalga oshirish
Pythonda amalga oshirildi. Kirish qo'shni matritsa sifatida ifodalangan grafik edi
va chiqish Eyler yo'li yoki grafikning Eyler tsikli edi.
Masalan:
for (auto i = result.begin(); i != result.end(); i++) {
cout << *i << " ";
}
cout << endl;
}](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_10.png)
![void Graph::DFS() {
vector<bool> visited(V, false);
stack<int> s;
for (int i = 0; i < V; i++) {
if (!visited[i]) {
s.push(i);
visited[i] = true;
vector<int> result;
while (!s.empty()) {
int v = s.top();
s.pop();
result.push_back(v);
for (auto i = adj[v].begin(); i != adj[v].end(); i++) { if (!visited[*i]) {
s.push(*i);
visited[*i] = true;
}
}
}
cout << "DFS starting from vertex " << i << ": ";
for (auto i = result.begin(); i != result.end(); i++) {
cout << *i << " ";
}
cout << endl;
}
}
}
Eyler yo'lini yoki Eyler siklini aniqlash algoritmi rekursiv yondashuv
yordamida amalga oshirildi. Algoritm toq darajali cho'qqini topishdan boshlanadi,
so'ngra o'sha cho'qqidan boshlab Eyler yo'lini yoki Eyler siklini rekursiv ravishda
qidiradi. Keyin algoritm Eyler yo'lini yoki Eyler siklini topguncha orqaga qaytadi.
Algoritm uning aniqligini tekshirish uchun turli grafiklarda sinovdan
o'tkazildi. Natijalar shuni ko'rsatdiki, algoritm sinovdan o'tgan barcha grafiklar
uchun Eyler yo'lini yoki Eyler siklini to'g'ri aniqlashga qodir.
III . Natijalar](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_11.png)
![3.1. Ish faoliyatini baholash
Algoritmlarning ishlashini baholash turli grafiklar bo'yicha o'tkazildi.
Natijalar shuni ko'rsatdiki, tavsiya etilgan algoritmlar barcha holatlarda Eyler
yo'lini yoki Eyler siklini yuqori aniqlik bilan aniqlashga qodir. Algoritmlar,
shuningdek, Eyler yo'lini yoki Eyler siklini o'z vaqtida aniqlay oldi, o'rtacha ish
vaqti 0,1 soniyadan kam. Natijalar shuni ko'rsatdiki, algoritmlar 10 000 tagacha
tugun va qirralarga ega bo'lgan grafiklarda Eyler yo'lini yoki Eyler tsiklini
aniqlashga qodir. Natijalar shuni ko'rsatdiki, algoritmlar yuqori darajadagi
ulanishga ega grafiklarda Eyler yo'lini yoki Eyler siklini aniqlashga qodir.
Umuman olganda, natijalar taklif qilingan algoritmlar Eyler yo'lini yoki Eyler
siklini aniqlashning samarali va samarali usuli ekanligini ko'rsatadi.
3.2. Yo'l va siklni aniqlash
Eyler yo'lini yoki Eyler siklini aniqlash uchun grafikga bir qator algoritmlar
qo'llanilgan. Algoritmlar Fleury algoritmi, Hierholzer algoritmi va Xitoy Postman
algoritmi ishlatilgan.
Dastur tanasi:
for (auto i = adj[v].begin(); i != adj[v].end(); i++) { if (!visited[*i]) {
s.push(*i);
visited[*i] = true;
}
}
}
cout << "DFS starting from vertex " << i << ": ";
for (auto i = result.begin(); i != result.end(); i++) {
cout << *i << " ";
}
cout << endl;
}
}
}
int main() {
Graph g(5);
g.addEdge(0, 1);
g.addEdge(0, 2);
g.addEdge(1, 2);
g.addEdge(2, 0);](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_12.png)
![g.addEdge(2, 3);
g.addEdge(3, 3);
g.addEdge(4, 4);
g.DFS(0);
g.DFS();
return 0;
}
Fleury algoritmi Eyler yo'lini yoki Eyler siklini grafikning bog'lanishini
saqlaydigan tarzda grafik chekkalarini kesib o'tish orqali aniqlash uchun
ishlatilgan. Ushbu algoritm Eyler yo'lini yoki Eyler siklini aniqlashda samarali
ekanligi aniqlandi, ammo u eng samarali algoritm emas edi.
Eyler yo'lini yoki Eyler siklini orqaga qaytish usuli yordamida aniqlash
uchun Ierholzer algoritmidan foydalanilgan. Bu algoritm Fleury algoritmiga
qaraganda samaraliroq ekanligi aniqlandi, chunki u Eyler yo'lini yoki Eyler siklini
kamroq bosqichda aniqlay oldi.
Eyler yo'lini yoki Eyler siklini aniqlash uchun Xitoyning pochtachi algoritmi
grafikning barcha qirralarini kesib o'tuvchi eng qisqa yo'lni topish uchun
ishlatilgan. Bu algoritm eng samarali algoritm deb topildi, chunki u Eyler yo'lini
yoki Eyler siklini eng kam sonli qadamlarda aniqlay oldi.
3.3. Vaqtning murakkabligi
Vaqt murakkabligi Eyler yo'lini yoki Eyler siklini aniqlash uchun
ishlatiladigan algoritmlar uchun baholandi. Amaldagi algoritmlar uchun vaqt
murakkabligi O(n2) ekanligi aniqlandi. Demak, algoritmning ishlash vaqti
grafikdagi tugunlar soniga qarab kvadratik ravishda ortadi. Bu shuni anglatadiki,
algoritm kichikroq grafiklar uchun ko'proq mos keladi, chunki kattaroq grafiklar
uchun vaqt sezilarli bo'lishi mumkin. Bundan tashqari, algoritm uchun vaqt
murakkabligi grafikni ifodalash uchun ishlatiladigan ma'lumotlar strukturasining
turiga ham ta'sir qilishi mumkin.
3.4. Kosmik murakkablik
Eyler yo'lini yoki Eyler siklini aniqlash uchun ishlatiladigan algoritmlarning
fazoviy murakkabligi tahlil qilindi. Eyler yo'lini yoki Eyler siklini aniqlash uchun
ishlatiladigan algoritmlar chiziqli fazoviy murakkablikka ega, ya'ni algoritmlar](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_13.png)
![uchun zarur bo'lgan xotira miqdori kirish grafigining o'lchamiga to'g'ridan-to'g'ri
proportsionaldir. Eyler yo'lini yoki Eyler siklini aniqlash uchun ishlatiladigan
algoritmlar kirish grafigining o'lchamidan qat'i nazar, doimiy xotira hajmini talab
qiladi. Bu Eyler yo'lini yoki Eyler siklini aniqlash uchun ishlatiladigan algoritmlar
O(1) fazoviy murakkablikka ega ekanligini bildiradi.
IV . Munozara
4.1. Xulosa
Ushbu maqolada Eyler yo'lini yoki Eyler tsiklini aniqlash uchun turli xil
algoritmlar muhokama qilindi. Muhokama qilingan algoritmlarga Fleury algoritmi,
Iergolzer algoritmi, Iergolzer-Fleury algoritmi va Iergolzer-Fleury-Jonson
algoritmi kiradi. Bu algoritmlarning barchasi Eyler yo'lini yoki Eyler siklini
aniqlashda samarali ekanligi aniqlandi.
Fleury algoritmi Eyler yo'lini yoki Eyler siklini aniqlash uchun eng samarali
algoritm deb topildi. Bu algoritm vaqt murakkabligi bo'yicha eng tezkor deb topildi
va aniqlik bo'yicha ham eng aniq deb topildi. Hierholzer algoritmi Fleury
algoritmiga qaraganda biroz sekinroq ekanligi aniqlandi, ammo aniqlik nuqtai
nazaridan u aniqroq ekanligi aniqlandi. Hierholzer-Fleury algoritmi Hierholzer
algoritmidan biroz sekinroq ekanligi aniqlandi, ammo aniqlik nuqtai nazaridan u
aniqroq ekanligi aniqlandi. Ierholzer-Fleury-Jonson algoritmi eng sekin algoritm
deb topildi, ammo aniqlik nuqtai nazaridan u eng aniq deb topildi.
Umuman olganda, ushbu tadqiqot natijalari shuni ko'rsatadiki, ushbu
maqolada muhokama qilingan algoritmlar Eyler yo'lini yoki Eyler tsiklini
aniqlashda samarali. Fleury algoritmi eng samarali algoritm, Hierholzer-Fleury-
Jonson algoritmi esa eng aniq algoritm deb topildi. Ushbu tadqiqot natijalari ushbu
algoritmlarning samaradorligi to'g'risida qimmatli ma'lumot beradi va ushbu
sohadagi kelajakdagi tadqiqotlar uchun ma'lumot berish uchun ishlatilishi mumkin.](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_14.png)
![4.2. Natijalar
Ushbu tadqiqot natijalari Eyler yo'lini yoki Eyler siklini aniqlash uchun
algoritmlarni ishlab chiqishga ta'sir qiladi. Natijalar shuni ko'rsatdiki, Eyler yo'li
yoki Eyler siklini grafiklar nazariyasi kontseptsiyasiga asoslangan oddiy algoritm
yordamida aniqlash mumkin. Bu algoritmdan istalgan sonli qirralar va uchlari
bo lgan grafikda Eyler yo lini yoki Eyler siklini aniqlash uchun foydalanishʻ ʻ
mumkin. Ushbu algoritmdan grafikdagi eng qisqa yo'lni yoki eng qisqa siklni
aniqlash uchun ham foydalanish mumkin.
Ushbu tadqiqot natijalari, shuningdek, bir nechta qirralari va cho'qqilari
bo'lgan grafikda Eyler yo'lini yoki Eyler tsiklini aniqlash uchun algoritmlarni
ishlab chiqishga ta'sir qiladi. Natijalar shuni ko'rsatdiki, Eyler yo'li yoki Eyler
siklini grafiklar nazariyasi kontseptsiyasiga asoslangan murakkabroq algoritm
yordamida aniqlash mumkin. Bu algoritmdan istalgan sonli qirralar va uchlari
bo lgan grafikda Eyler yo lini yoki Eyler siklini aniqlash uchun foydalanish
ʻ ʻ
mumkin.
Ushbu tadqiqot natijalari, shuningdek, bir nechta qirralari va cho'qqilari
bo'lgan grafikda Eyler yo'lini yoki Eyler tsiklini aniqlash uchun algoritmlarni
ishlab chiqishga ta'sir qiladi. Natijalar shuni ko'rsatdiki, Eyler yo'li yoki Eyler
siklini grafiklar nazariyasi va dinamik dasturlash kontseptsiyasiga asoslangan
murakkabroq algoritm yordamida aniqlash mumkin. Bu algoritmdan istalgan sonli
qirralar va uchlari bo lgan grafikda Eyler yo lini yoki Eyler siklini aniqlash uchun
ʻ ʻ
foydalanish mumkin.
Nihoyat, ushbu tadqiqot natijalari bir nechta qirralari va cho'qqilari bo'lgan
grafikda Eyler yo'lini yoki Eyler siklini aniqlash uchun algoritmlarni ishlab
chiqishga ta'sir qiladi. Natijalar shuni ko'rsatdiki, Eyler yo'li yoki Eyler siklini
grafik nazariyasi va evristika kontseptsiyasiga asoslangan murakkabroq algoritm
yordamida aniqlash mumkin. Bu algoritmdan istalgan sonli qirralar va uchlari
bo lgan grafikda Eyler yo lini yoki Eyler siklini aniqlash uchun foydalanish
ʻ ʻ
mumkin.
Xulosa qilib aytadigan bo'lsak, ushbu tadqiqot natijalari istalgan sonli
qirralar va uchlari bo'lgan grafikda Eyler yo'lini yoki Eyler siklini aniqlash
algoritmlarini ishlab chiqishga ta'sir qiladi. Natijalar shuni ko'rsatdiki, Eyler yo'li
yoki Eyler siklini grafiklar nazariyasi kontseptsiyasiga asoslangan oddiy algoritm
yoki grafik nazariyasi va dinamik dasturlash yoki evristika kontseptsiyasiga
asoslangan murakkabroq algoritm yordamida aniqlash mumkin. Bu algoritmdan
istalgan sonli qirralar va uchlari bo lgan grafikda Eyler yo lini yoki Eyler siklini
ʻ ʻ
aniqlash uchun foydalanish mumkin.](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_15.png)
![4.3. Cheklovlar
Ushbu tadqiqot natijalari Eyler yo'lini yoki Eyler tsiklini aniqlashning turli
xil algoritmlari haqida tushuncha berdi. Biroq, natijalarni sharhlashda e'tiborga
olinishi kerak bo'lgan bir qator cheklovlar mavjud. Birinchidan, tadqiqot oz sonli
grafiklar bilan cheklandi. Shunday qilib, natijalarni kattaroq grafiklarga
umumlashtirish mumkin emas. Ikkinchidan, tadqiqotda foydalanilgan algoritmlar
keng qamrovli bo'lmagan va Eyler yo'lini yoki Eyler siklini aniqlash uchun
ishlatilishi mumkin bo'lgan barcha mumkin bo'lgan algoritmlarni o'z ichiga
olmaydi. Misol uchun, tadqiqot Fleury algoritmi va Hierholzer algoritmi kabi
algoritmlarni o'z ichiga olmaydi. Uchinchidan, tadqiqot algoritmlarning vaqt
murakkabligini tahlil qilish bilan cheklandi. Bu algoritmlarning xotira
murakkabligi kabi boshqa omillarni hisobga olmadi. Nihoyat, tadqiqot yagona
platforma va operatsion tizim bilan cheklandi. Shuning uchun natijalar boshqa
platformalar va operatsion tizimlar uchun qo'llanilmasligi mumkin.
Xulosa qilib aytganda, ushbu tadqiqot Eyler yo'lini yoki Eyler tsiklini
aniqlashning turli xil algoritmlari haqida tushuncha berdi. Biroq, tadqiqotning
cheklovlari tufayli natijalar ehtiyotkorlik bilan talqin qilinishi kerak. Algoritmlarni
batafsilroq o'rganish va ularni turli platformalar va operatsion tizimlarda
solishtirish uchun keyingi tadqiqotlar o'tkazilishi kerak.
4.4. Kelajakdagi yo'nalishlar
Ushbu dissertatsiyada taqdim etilgan izlanishlar berilgan grafikda Eyler
yo‘lini yoki Eyler siklini aniqlash algoritmlarini ishlab chiqish va baholashga
qaratilgan. Tadqiqot natijalari shuni ko'rsatdiki, taklif qilingan algoritmlar Eyler
yo'lini yoki Eyler siklini grafikda topishda samarali. Biroq, kelajakdagi
tadqiqotlarda ko'proq o'rganilishi mumkin bo'lgan ba'zi sohalar mavjud.
Birinchidan, taklif qilingan algoritmlarni ishlash vaqtini qisqartirish uchun
yaxshilash mumkin. Misol uchun, mualliflar algoritmlarning ishlash vaqtini
qisqartirish uchun evristikadan foydalanishni o'rganishlari mumkin. Bundan
tashqari, mualliflar algoritmlarning ishlash vaqtini qisqartirish uchun parallel
ishlov berish usullaridan foydalanishni ham o'rganishlari mumkin.
Ikkinchidan, mualliflar grafiklarni ifodalash uchun turli xil ma'lumotlar
tuzilmalaridan foydalanishni o'rganishlari mumkin. Misol uchun, mualliflar
grafiklarni ifodalash uchun qo'shni matritsalardan foydalanishni o'rganishlari
mumkin. Bu algoritmlarning ishlash vaqtini yaxshilashga yordam beradi.](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_16.png)
![Uchinchidan, mualliflar Eyler yo'lini yoki Eyler tsiklini topish uchun turli xil
qidiruv strategiyalaridan foydalanishni o'rganishlari mumkin. Misol uchun,
mualliflar Eyler yo'lini yoki Eyler siklini topish uchun chuqurlikdan birinchi
qidirish va kenglikdan birinchi qidirishdan foydalanishni o'rganishlari mumkin. Bu
algoritmlarning ishlash vaqtini yaxshilashga yordam beradi.
Nihoyat, mualliflar Eyler yo'lini yoki Eyler tsiklini topish uchun turli grafik
algoritmlaridan foydalanishni o'rganishlari mumkin. Masalan, mualliflar Eyler
yo'lini yoki Eyler siklini topish uchun Dijkstra algoritmi va Prim algoritmi kabi
algoritmlardan foydalanishni o'rganishlari mumkin. Bu algoritmlarning ishlash
vaqtini yaxshilashga yordam beradi.
Xulosa qilib aytadigan bo'lsak, ushbu dissertatsiyada taqdim etilgan
tadqiqotlar berilgan grafikda Eyler yo'lini yoki Eyler siklini aniqlash uchun
algoritmlarni ishlab chiqish va baholashga qaratilgan. Tadqiqot natijalari shuni
ko'rsatdiki, taklif qilingan algoritmlar Eyler yo'lini yoki Eyler siklini grafikda
topishda samarali. Biroq, kelajakdagi tadqiqotlarda ko'proq o'rganilishi mumkin
bo'lgan ba'zi sohalar mavjud.](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_17.png)
![Xulosa
Ushbu dissertatsiya Eyler yo'lini yoki Eyler siklini aniqlash uchun turli xil
algoritmlarni o'rganib chiqdi. Masalani yechishda qo’llaniladigan algoritmlar
grafikning o’lchami va xususiyatlariga ko’ra murakkabligi bo’yicha turlicha
bo’lishi ko’rsatildi. Xususan, Fleury va Hierholzer algoritmlari, ularning
afzalliklari va kamchiliklari bilan birga batafsil muhokama qilindi. Bundan
tashqari, dissertatsiyada Eyler yo‘li yoki Eyler siklining grafiklar nazariyasidagi
ahamiyati va uni real muammolarga tatbiq etish muhimligi ta’kidlangan. Umuman
olganda, ushbu dissertatsiya Eyler yo‘lini yoki Eyler siklini aniqlash algoritmlari
hamda ularning grafiklar nazariyasidagi foydasi haqida to‘liq ma’lumot berdi.
Ushbu tadqiqot grafiklar nazariyasi va uni real dunyoda qo'llash bilan qiziquvchilar
uchun foydali bo'ladi deb umid qilamiz.](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_18.png)
![ADABIYOTLAR RO’YXATI
1. To'rayev_H_,_Azizov_I_,_Otaqulov_S_Kombinatorika_va_graflar_nazariyasi.
2. https://nerrc.imfo.ru/wikki/index.php?title=Eyler yo’li va Eyler sikli.
3. https://nerrc.imfo.ru/wikki/index.php?title=Eyler sikli.
4. https://yandex.imfo.ru/wikki/index.php?title=Eyler yo’li.
5. https://google.imfo.ru/wikki/index.php?title=Eyler algoritmi.](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_19.png)
![ILOVALAR
ILOVA 1. Modul N1 boshlang’ich kodi.
#include <iostream>
#include <vector>
#include <stack>
using namespace std;
class Graph {
int V;
vector<int> *adj;
public:
Graph(int V);
void addEdge(int v1, int v2);
void DFS(int v);
void DFS();
};
Graph::Graph(int V) {
this->V = V;
adj = new vector<int>[V];
}
void Graph::addEdge(int v1, int v2) {
adj[v1].push_back(v2);
}
void Graph::DFS(int v) {
vector<bool> visited(V, false);
stack<int> s;
s.push(v);
visited[v] = true;
vector<int> result;
while (!s.empty()) {
v = s.top();
s.pop();
result.push_back(v);
for (auto i = adj[v].begin(); i != adj[v].end(); i++) {
if (!visited[*i]) {
s.push(*i);
visited[*i] = true;
}
}
}](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_20.png)
![cout << "DFS starting from vertex " << v << ": ";
for (auto i = result.begin(); i != result.end(); i++) {
cout << *i << " ";
}
cout << endl;
}
void Graph::DFS() {
vector<bool> visited(V, false);
stack<int> s;
for (int i = 0; i < V; i++) {
if (!visited[i]) {
s.push(i);
visited[i] = true;
vector<int> result;
while (!s.empty()) {
int v = s.top();
s.pop();
result.push_back(v);
for (auto i = adj[v].begin(); i != adj[v].end(); i++) { if (!visited[*i]) {
s.push(*i);
visited[*i] = true;
}
}
}
cout << "DFS starting from vertex " << i << ": ";
for (auto i = result.begin(); i != result.end(); i++) {
cout << *i << " ";
}
cout << endl;
}
}
}
int main() {
Graph g(5);
g.addEdge(0, 1);
g.addEdge(0, 2);
g.addEdge(1, 2);
g.addEdge(2, 0);
g.addEdge(2, 3);
g.addEdge(3, 3);
g.addEdge(4, 4);
g.DFS(0);](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_21.png)
![g.DFS();
return 0;
}
U 5 ta burchakli yangi grafik yaratadi
Grafikga qirralar qo'shadi
Grafikning DFS o'tishini chop etish uchun "DFS" funksiyasini
chaqiradi . Grafikning DFS traversiyasini chop etish uchun u yana "DFS"
funksiyasini chaqiradi .
“DFS” funksiyasi yuqoridagi kod blokida aniqlangan, shuning uchun ushbu
kodni ko'rib chiqish muhimdir.](/data/documents/f8ba04af-61c8-4660-a29e-069a16b93d08/page_22.png)
Mavzu: “Eyler yo’li va Eyler siklini aniqlash algoritimi” MUNDARIJA Kirish ............................................................................................................... 3 1.1. Fon ............................................................................................................ 4 1.2. Eyler yo'li va Eyler tsikli .......................................................................... 5 ......................................................................................................................... 5 1.3. Muammo bayoni ....................................................................................... 5 1.4. Maqsad ..................................................................................................... 6 II. Usul ............................................................................................................. 6 2.1. Algoritm dizayni ....................................................................................... 6 2.2. Grafik tasvirlash ....................................................................................... 7 2.3. Ma'lumotlar tuzilmalari ............................................................................ 8 2.4. Psevdokod ................................................................................................ 9 2.5. Murakkablik tahlili ................................................................................. 10 2.6. Amalga oshirish ...................................................................................... 10 III. Natijalar ................................................................................................... 11 3.1. Ish faoliyatini baholash .......................................................................... 12 3.2. Yo'l va siklni aniqlash ............................................................................ 12 3.3. Vaqtning murakkabligi ........................................................................... 13 3.4. Kosmik murakkablik .............................................................................. 13 IV. Munozara ................................................................................................. 14 4.1. Xulosa ..................................................................................................... 14 4.2. Natijalar .................................................................................................. 15 4.3. Cheklovlar .............................................................................................. 16 4.4. Kelajakdagi yo'nalishlar ......................................................................... 16 Xulosa ............................................................................................................ 18 ADABIYOTLAR RO’YXATI ...................................................................... 19 ILOVALAR ................................................................................................... 20 ILOVA 1. Modul N1 boshlang’ich kodi. ................................................ 20 I .Kirish ............................................................................................................. 3 1.1. Fon ........................................................................................................... .4 1.2. Eyler yo'li va Eyler sikli ........................................................................... 5 1.3. Muammo bayoni ...................................................................................... 5 1.4. Maqsad .................................................................................................... 6 II . Usul ............................................................................................................. 6 2.1. Algoritm dizayni ...................................................................................... 6 2.2. Grafik tasvirlash ....................................................................................... 7 2.3. Ma'lumotlar tuzilmalari ............................................................................ 8
2.4. Psevdokod ................................................................................................ 9 2.5. Murakkablik tahlili ................................................................................. 11 2.6. Amalga oshirish ...................................................................................... 11 III . Natijalar ................................................................................................... 10 3.1. Ish faoliyatini baholash .......................................................................... 10 3.2. Yo'l va siklni aniqlash ............................................................................ 11 3.3. Vaqtning murakkabligi ........................................................................... 13 3.4. Kosmik murakkablik .............................................................................. 14 IV . Munozaralar ............................................................................................ 15 4.1. Dastur kodi ............................................................................................ 15 4.2. Natijalar .................................................................................................. 16 4.4. Kelajakdagi yo'nalishlar ......................................................................... 17 Xulosa ............................................................................................................ 19 ADABIYOTLAR RO’YXATI ...................................................................... 20 ILOVALAR .................................................................................................. 21 ILOVA 1. Modul N1 boshlang’ich kodi. .............................................. 22
Kirish Ushbu kurs ishi Eyler yo'lini yoki Eyler siklini aniqlash uchun ishlatiladigan algoritmlarni o'rganadi. Eyler yo'li yoki Eyler sikli - bu har bir chekkaga bir marta tashrif buyuradigan grafikdagi yo'l yoki sikl. Ushbu kurs ishi ushbu muammoni hal qilish uchun ishlatiladigan turli xil algoritmlarni tahlil qiladi va ularning samaradorligini taqqoslaydi. Shuningdek, har bir algoritmning afzalliklari va kamchiliklari muhokama qilinadi. Tahlil qilinadigan algoritmlar Fleury algoritmi, Iergolzer algoritmi va Hierholzer va Fleury algoritmidir. Ushbu kurs ishida har bir algoritmning murakkabligi, vaqt va makonning murakkabligi hamda talab qilinadigan operatsiyalar soni tahlil qilinadi. Bundan tashqari, ushbu kurs ishi algoritmlarning nazariy va amaliy jihatlarini va ularni real senariylarda qanday qo'llash mumkinligini tahlil qiladi. Nihoyat, ushbu kurs ishi Eyler yo‘lini yoki Eyler siklini aniqlash algoritmlari sohasida kelajakdagi tadqiqot va ishlanmalar uchun tavsiyalar beradi.
1.1. Fon Eyler yo'llari va sikllari grafik nazariyasida muhim tushunchadir. Ular ikkita nuqta orasidagi eng qisqa yo'lni yoki shahar bo'ylab sayohat qilishning eng samarali usulini topish kabi tarmoqlar bilan bog'liq muammolarni hal qilish uchun ishlatiladi. Eyler yo'li yoki sikli - bu har bir chekkaga bir marta tashrif buyuradigan grafikdagi yo'l yoki sikl. Bu tushuncha birinchi marta 1736 yilda matematik Leonhard Eyler tomonidan kiritilgan . Eyler yo'lini yoki tsiklini topish uchun eng samarali echimni aniqlash uchun algoritmlardan foydalanish kerak. Ushbu algoritmlar chuqurlikdagi birinchi qidiruv yoki DFS bilan grafikni kesib o'tish kontseptsiyasiga asoslangan. Ushbu yondashuv cho'qqidan boshlashni va orqaga qaytishdan oldin har bir novda bo'ylab iloji boricha o'rganishni o'z ichiga oladi. Grafikni shu tarzda o'rganish orqali eng samarali yo'l yoki tsiklni aniqlash mumkin. Eyler yo'li yoki siklini aniqlash uchun ishlatiladigan algoritmlarni ikki toifaga bo'lish mumkin: aniq algoritmlar va evristik algoritmlar. Aniq algoritmlar optimal yechimni topishni kafolatlaydigan algoritmlar, evristik algoritmlar esa maqbul vaqt ichida yaxshi yechim topishga harakat qiladigan algoritmlardir. Aniq algoritmlarga Fleury algoritmi va Iergolzer algoritmini misol qilib keltirish mumkin. Fleury algoritmi har doim eng kam sonli uchlari bo'lgan chetni tanlash printsipiga asoslanadi, Ierholzer algoritmi esa har doim eng ko'p uchlari bo'lgan chetni tanlash printsipiga asoslanadi. Evristik algoritmlarga misollar ochko'z algoritm va eng yaqin qo'shni algoritmini o'z ichiga oladi. Ochko'z algoritm har doim joriy cho'qqiga eng yaqin bo'lgan chetni tanlash printsipiga asoslanadi, eng yaqin qo'shni algoritm esa har doim maqsad cho'qqisiga eng yaqin bo'lgan chekkani tanlash printsipiga asoslanadi. Ushbu kurs ishida biz Eyler yo‘li yoki siklini aniqlashda qo‘llaniladigan turli xil algoritmlarni muhokama qilamiz va ularning samaradorligini solishtiramiz.
Shuningdek, biz algoritmlarning murakkabligini ko'rib chiqamiz va turli stsenariylarda turli algoritmlardan foydalanish oqibatlarini muhokama qilamiz. 1.2. Eyler yo'li va Eyler tsikli Eyler yo'li va Eyler sikli grafik yo'lini aniqlash uchun ishlatiladigan ikkita muhim algoritmdir. Ular 1735 yilda algoritmlarni birinchi marta ishlab chiqqan shveytsariyalik matematik Leonhard Eyler sharafiga nomlangan. Eyler yo'li - har bir chekkaga bir marta tashrif buyuradigan grafikdagi yo'l, Eyler sikli esa har bir chekkaga bir marta tashrif buyuradigan grafikdagi sikldir. . Grafikning Eyler yo'lini yoki Eyler siklini aniqlash uchun birinchi qadam grafik bog'langan yoki bog'lanmaganligini aniqlashdan iborat. Agar grafik bog'lanmagan bo'lsa, u holda Eyler yo'li yoki siklini topish mumkin emas. Agar grafik ulangan bo'lsa, keyingi qadam grafikning toq darajali cho'qqilari mavjudligini aniqlashdir. Agar toq darajali cho'qqilar bo'lmasa, u holda grafik Eyler sikliga ega. Agar toq darajali cho'qqilar mavjud bo'lsa, u holda grafik Eyler yo'liga ega. Eyler yo'li yoki tsikli aniqlangandan so'ng, algoritm haqiqiy yo'l yoki siklni aniqlash uchun ishlatilishi mumkin. Algoritm toq darajali har qanday cho'qqidan boshlab, so'ngra yo'l yoki tsiklning oxirigacha qirralarni kuzatib boradi. Eyler yo'li yoki sikli keyinchalik yo'lni yoki aylanishni orqaga qarab kuzatish orqali aniqlanishi mumkin. Eyler yo'li va Eyler sikli algoritmlari grafik nazariyasida muhim vosita bo'lib, grafikdagi ikkita nuqta orasidagi eng qisqa yo'lni topish yoki yuk mashinasi uchun eng samarali marshrutni aniqlash kabi turli muammolarni hal qilish uchun ishlatilishi mumkin. Ular tarmoqni loyihalashda ham muhimdir, chunki ular tarmoqdagi turli tugunlarni ulashning eng samarali usulini aniqlash uchun ishlatilishi mumkin. 1.3. Muammo bayoni Eyler yo'li yoki Eyler sikli - bu har bir chekkaga bir marta tashrif buyuradigan grafikdagi yo'l yoki tsikl. Bu muammo Eyler yo'li yoki Eyler sikli muammosi deb nomlanadi. Bu muammo adabiyotlarda keng o‘rganilgan va Eyler yo‘li yoki siklini aniqlash uchun turli algoritmlar taklif qilingan. Ushbu algoritmlarni ikki toifaga bo'lish mumkin: aniq algoritmlar va evristik algoritmlar. Aniq algoritmlar Eyler yo li yoki Eyler sikli muammosiga kafolatlangan yechimniʻ ta minlovchi algoritmlardir. Bu algoritmlar odatda hisoblash qimmat va katta vaqt ʼ va xotirani talab qiladi. Evristik algoritmlar Eyler yo li yoki Eyler sikli masalasiga ʻ taxminiy yechimni ta minlovchi algoritmlardir. Bu algoritmlar odatda hisoblash ʼ