logo

Eyler yo’li va Eyler siklini aniqlash algoritimi

Yuklangan vaqt:

12.08.2023

Ko'chirishlar soni:

0

Hajmi:

29.7177734375 KB
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	
ʼ 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 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  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. 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. 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;
      }  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 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);         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 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. 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. 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. 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. 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. 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. 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;
            }
          }
        }         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);         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.

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 ʼ