Mavzu-16: Graflarda erkin uchlarini tanlash, bo'yash. To’plamlarning to’plam ostilari aniqlash, birlashtirish




Download 240,97 Kb.
bet2/4
Sana22.01.2024
Hajmi240,97 Kb.
#142848
1   2   3   4
Bog'liq
Algoritm-16-9 (1)
pascal-work, Mavzu Buxgalteriya hisobida raqamlashtirish texnologiyalari Rej, 4-MATEMATIKA 333333333, Matematika 4-sinf, Холиков Зиёвиддин (2), ADVANTAGES AND DISADVANTAGES OF TEACHING GRAMMAR INDUCTIVELY, THE TYPES OF MORPHEMES AND THE GRAMMATICAL CATEGORIES, таможня маълумотномалари бланкаси 2021 йил, salimov feruz ped, Xavfsizlik qoidalari (uzb 7-semestr 76-soat), R Javohir kurs ishi (Rahimov) (2), nodir, O‘RQ 410 сон 22 09 2016  “Mehnatni muhofaza qilish to‘g‘risida”gi, umar raximov, metodichka AutoCAD tajriba EE
Bellman-Ford algoritmi
Algoritm tarixi uchta mustaqil matematiklar bilan bog'liq: Lester Ford, Richard Bellman va Edward Moore. Ford va Bellman algoritmni 1956 va 1958 yillarda nashr etishdi, Moore esa 1957 yilda taqdim qilgan. Va ba'zan uni Bellman-Ford-Moore algoritmi deb ham atashadi. Usul ba'zi vektorli-marshrutlash protokollarida, masalan, RIPda (Routing Information Protocol) qo'llaniladi. Deykstra algoritmi singari, Bellman-Ford algoritmi ham vaznga ega bo’lgan graflarda bitta tugundan qolgan barcha tugunlarga bo’lgan eng qisqa masofani aniqlashda ishlatiladi. Bu algoritm manfiy vaznga ega bo’lgan graflar bilan ishlashda ham qo’llanilishi mumkin (istisno holatlar ham mavjud).
s tugundan qolgan barcha tugunlargacha bo’lgan qisqa masofani Bellman-Ford algoritmidan foydalanib topish dinamik dasturlashtirish usulini qo’llash demakdir, ya’ni uni qism masalalarga ajratib, ularni yechimi orqali umumiy asosiy masalani hal qilishdir. Bunda qism masala bo’lib, bitta alohida qaralayotgan tugundan boshqasigacha eng qisqa yo’lni aniqlash masalasi hisoblanadi. Algoritm natijalarini saqlash uchun d[] bir o’lchovli massiv qabul qilamiz. Uning har bir i-elementida s gundan i-elementgacha qisqa masofa qiymatini saqlanadi (agar mavjud bo’lsa). Dastlab, d[] massiv elementlariga shartli sheksiz katta qiymat berib chiqiladi, d[s] ga 0 o’zlashtiriladi.
G={V, E}, n=|V|, m=|E| graf berilgan bo’lsin. Qo’shni tugunlarni v va u deb, (v,u) orasidagi qirrani w deb belgilab olamiz. Boshqacha aytganda, v tugundan chiquvchi va u tugunga kiruvchi qirra vazni w ga teng. U holda, Bellman-Ford algoritmining muhim qismi quyidagicha ko’rinishga ega bo’ladi:

  • I=1 dan n-1 gacha bajaramiz
    j=1 dan m gacha bajaramiz
    agar d[v] + w(v, u) < d[u] bo’lsa, u holda
    d[u] < d[v] + w(v, u)

Har bir n-qadamda d[] massiv elementlari qiymatlarini yashilashga harakat qilinadi: agar w(v,u) qirra vazni va d[v] element qiymati yig’indisi d[u] qiymaridan kichik bo’lsa, u holda bu qiymat d[u] ga o’zlashtiriladi.
#include "stdafx.h"
#include
#define inf 100000
using namespace std;
struct Edges{
int u, v, w;
};
const int Vmax=1000;
const int Emax=Vmax*(Vmax-1)/2;
int i, j, n, e, start;
Edges edge[Emax];
int d[Vmax];
//Bellman-Ford algoritmi
void bellman_ford(int n, int s)
{
int i, j;
for (i=0; id[s]=0;
for (i=0; ifor (j=0; jif (d[edge[j].v]+edge[j].wd[edge[j].u]=d[edge[j].v]+edge[j].w;
for (i=0; icout<"<else cout<"<}
//asosiy funksiya
void main()
{
int w;
cout<<"tugunlar soni > "; cin>>n;
e=0;
for (i=0; ifor (j=0; j{
cout<<"Вес "<"< "; cin>>w;
if (w!=0)
{
{
edge[e].v=i;
edge[e].u=j;
edge[e].w=w;
e++; } }
cout<<"boshlang’ich tugun > "; cin>>start;
cout<<"qisqa masofalar ro’yhati:";
bellman_ford(n, start-1);
system("pause>>void"); }
Bu yerda graf soddalashtirilgan qirralar ro’yhati ko’rinishida ifodalangan va foydalanuvchi tomonidan vazn matrisasi kiritiladi. Bellman-Ford algoritmining asosiy qismi m*(n-1) marta bajariladi, tashqi sik n-1 marta takrorlanadi, ichki sikl esa m marta. N-iterasiyadan voz kechish esa maqsadga muvofiqdir, chunki algoritm n-1 ta iterasiyada ham o’z vazifasini to’liq amalga oshira oladi. Ammo tashqi siklni n marta amalga oshirish grafda manfiy sikl mavjudligini aniqlashga imkon beradi.

Download 240,97 Kb.
1   2   3   4




Download 240,97 Kb.

Bosh sahifa
Aloqalar

    Bosh sahifa



Mavzu-16: Graflarda erkin uchlarini tanlash, bo'yash. To’plamlarning to’plam ostilari aniqlash, birlashtirish

Download 240,97 Kb.