Laboratoriniai darbai

Trumpiausias kelias grafe

9.6   (2 atsiliepimai)
Trumpiausias kelias grafe 1 puslapis
Trumpiausias kelias grafe 2 puslapis
Trumpiausias kelias grafe 3 puslapis
Trumpiausias kelias grafe 4 puslapis
Trumpiausias kelias grafe 5 puslapis
Trumpiausias kelias grafe 6 puslapis
www.nemoku.lt
www.nemoku.lt
Aukščiau pateiktos peržiūros nuotraukos yra sumažintos kokybės. Norėdami matyti visą darbą, spustelkite peržiūrėti darbą.
Ištrauka

Laboratorinio darbo Nr.4 ataskaita Diskrečiosios struktūros Trumpiausias kelias grafe Atliko: IF2 studentė Darbo tikslas: Susipažinti su sunkumais, iškylančiais sprendžiant pilno perrinkimo (pilnosios NP sudėtingumo klasės) uždavinius.  Darbo užduotis: Sudarykite programą, sprendžiančią kurį nors pilnosios NP sudėtingumo klasės uždavinį. Apskaičiuoti pasirinktojo algoritmo vykdymo laiką. Pasirenkam Hamiltono ciklo uždavinį. Užduoties sprendimo rezultatai ir pastebėjimai: Kadangi mes pasirinkame Hamiltono ciklo uždavinį, mums reikia neorientuotame grafe rasti ciklą, kuris per visas viršūnes praeitų lygiai vieną kartą. Tokių atvejų pradiniai duomenys turi būti surašyti tekstiniame faile, gretutines matricos formatų. Iš pradžios nubraižykim pasirinkta grafą: Sudarome pradinių duomenų failą. Pastaba: Gretimumo matricoje, kuri sudaryta iš penkių stulpelių ir penkių eilučių(grafo penkios viršūnės), parodo kokios viršūnės yra gretimos viena kitai: tos viršūnės, ties kuriomis yra vienetukas, yra gretimos, o ties kuriomis yra nuliukas – ne.. Programos sudėtingumą galima įvertinti pagal uždavinio atlikimo laiką. Žinoma, kiekvienam kompiuteriui, turinčiam skirtingus resursus algoritmo atlikimo laikas skirsis. Žemiau pateiktas atliktas keliuose kompiuteriuose uždavinio sprendimo laikas: Šio metodo esmė yra labai paprasta: jei paieškos metu viršūnė u tampa išsemta, tai pamirštame, kad šioje viršūnėje buvome, t.y. viršūnė u tampa nauja. Tarkime, kad grafas G=(V,U) yra jungusis ir nusakytas masyvais L ir lst. Paiešką pradėsime iš 1-osios viršūnės(nors šio atvejų tai neturi jokios reikšmes, nuo kokios viršūnės prasidedame paieška, nes mes nagrinėjame ciklą). Paieškos metu aplankytas viršūnes talpinsime į masyvą X[1..n+1]. Kitaip tariant, masyvo X elementai apibrėš aplankytųjų viršūnių maršrutą. Jei paieškos metu masyve X yra n elementų, ir iš viršūnės Xn atėjome į 1-ąją viršūnę, tai reiškia, kad radome Hamiltono ciklą. Tokių atveju mes gauname tokius rezultatus: Programos tekstas: unit Paieska_grafuose; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, jpeg; type TForm1 = class(TForm) Label2: TLabel; Memo1: TMemo; Button1: TButton; Image1: TImage; Button2: TButton; Button3: TButton; Edit1: TEdit; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private public end; const c = 500; type mas = array[1..c] of integer; matr = array[1..c,1..c] of integer; var Form1: TForm1; x, fst, prec: mas; n,m:integer; L, lst : mas; alfa : boolean; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Edit1.Clear; Memo1.Clear; Memo1.ScrollBars := ssVertical; Image1.Visible := false; Button3.Enabled:=false; end; //duomanu ivedimas procedure TForm1.Button1Click(Sender: TObject); var failas: string; F: TextFile; h, i, j, s : integer; gret : matr; begin failas := Edit1.Text; Image1.Visible := true; Button3.Enabled:=true; n := 1; AssignFile (F, Failas); //Atidarome faila Reset (F); //Paruosiame faila skaitymui //skaiciuojame eilutes while not Eof (F) do begin //Perkeliam zymekli faile i sekanti eilute readln (F); n := n + 1; end; n:=n-1; CloseFile (F); //uzdarom faila AssignFile (F, Failas); Reset (F); //ivedimas for i:=1 to n do begin for j:=1 to n do begin read (F, gret[i,j]); end; readln (F); end; CloseFile (F); h := 1;//eina per L s := 1;//eina per lst lst[s]:=0; s:=s+1; for i:=1 to n do begin for j:=1 to n do begin if gret[i][j]=1 then begin L[h]:=j; h:=h+1; end; end; lst[s]:=h-1;//adresas i L, kur prasideda kitos virsunes gretimos s:=s+1; end; end; //isejimas procedure TForm1.Button2Click(Sender: TObject); begin Halt; end; //hamiltono ciklo paieska procedure TForm1.Button3Click(Sender: TObject); var i, k, ciklas, aga, vot, u, v, j : integer; laikas, start, stop: TDateTime; Hour, Mi, Sec, MSec: Word; t,p, rastas : boolean; fst, prec : mas; paras_ema : string; begin //matojam laika start:=now(); //papildomas ciklas, programos vykdimo laiko pailginimui for aga:=0 to 10000 do for vot:=0 to 100000 do ciklas := ciklas * 2; rastas:=false; alfa:=false; v:=1; for i:=1 to n do begin fst[i]:= lst[i]+1; prec[i]:=0; end; k:=v; if fst[k]

Daugiau informacijos...

Šį darbą sudaro 791 žodžiai, tikrai rasi tai, ko ieškai!

★ Klientai rekomenduoja


Šį rašto darbą rekomenduoja mūsų klientai. Ką tai reiškia?

Mūsų svetainėje pateikiama dešimtys tūkstančių skirtingų rašto darbų, kuriuos įkėlė daugybė moksleivių ir studentų su skirtingais gabumais. Būtent šis rašto darbas yra patikrintas specialistų ir rekomenduojamas kitų klientų, kurie po atsisiuntimo įvertino šį mokslo darbą teigiamai. Todėl galite būti tikri, kad šis pasirinkimas geriausias!

Detali informacija
Darbo tipas
Lygis
Universitetinis
Failo tipas
Word failas (.doc)
Apimtis
6 psl., (791 ž.)
Darbo duomenys
  • Informacinių technologijų laboratorinis darbas
  • 6 psl., (791 ž.)
  • Word failas 95 KB
  • Lygis: Universitetinis
www.nemoku.lt Atsisiųsti šį laboratorinį darbą
Privalumai
Pakeitimo garantija Darbo pakeitimo garantija

Atsisiuntei rašto darbą ir neradai jame reikalingos informacijos? Pakeisime jį kitu nemokamai.

Sutaupyk 25% pirkdamas daugiau Gauk 25% nuolaidą

Pirkdamas daugiau nei vieną darbą, nuo sekančių darbų gausi 25% nuolaidą.

Greitas aptarnavimas Greitas aptarnavimas

Išsirink norimus rašto darbus ir gauk juos akimirksniu po sėkmingo apmokėjimo!

Atsiliepimai
www.nemoku.lt
Dainius Studentas
Naudojuosi nuo pirmo kurso ir visad randu tai, ko reikia. O ypač smagu, kad įdėjęs darbą gaunu bet kurį nemokamai. Geras puslapis.
www.nemoku.lt
Aurimas Studentas
Puiki svetainė, refleksija pilnai pateisino visus lūkesčius.
www.nemoku.lt
Greta Moksleivė
Pirkau rašto darbą, viskas gerai.
www.nemoku.lt
Skaistė Studentė
Užmačiau šią svetainę kursiokės kompiuteryje. :D Ką galiu pasakyti, iš kitur ir nebesisiunčiu, kai čia yra viskas ko reikia.
Palaukite! Šį darbą galite atsisiųsti visiškai NEMOKAMAI! Įkelkite bet kokį savo turimą mokslo darbą ir už kiekvieną įkeltą darbą būsite apdovanoti - gausite dovanų kodus, skirtus nemokamai parsisiųsti jums reikalingus rašto darbus.
Vilkti dokumentus čia:

.doc, .docx, .pdf, .ppt, .pptx, .odt