OrdenagailuakProgramazioa

Kruskal-en algoritmoa - marko optimoa bat eraikitzea

goiz 19an mendean geometrilariaren In Berlin Jakob Steiner hiru herrietan nola konektatu behar da, beraz, beren luzera laburrena zen zeregin ezarri. Geroago, arazoa laburbildu zuen: beharrezkoa da plano batean puntu bat aurkitzeko, bertatik distantzia n beste puntu txikiena izan ziren. 20an mendean, gai honen inguruan lan egiten jarraitzen du. Erabaki zen puntu batzuk hartu eta horiek konektatzeko modu bat, haien arteko distantzia laburrena izan zen, hala nola. Hori guztia aztertzen ari arazoaren kasu berezi bat da.

"Greedy" algoritmo

Kruskal-ren algoritmoa "Greedy" algoritmo (gradient ere deitzen) dagokio. horiek funtsa - Urrats bakoitzean irabazi handienak. Ez beti, "Greedy" algoritmoak ematen arazoari irtenbide onenak. Ez dago teoria bat da, euren zereginak zehatzei aplikazioan irtenbide ezin hobea ematen dute erakusten. Hau matroids teoria da. Kruskal-en algoritmoa Arazo hauei egiten die erreferentzia.

Gutxieneko carcass pisu bat aurkitzea

Bisitak algoritmo optimoa fotograma Aldaketa bat eraikitzen. da arazoa honako hau da. Dan undirected grafikoan ertzak paralelo eta begiztak gabe, eta ertz multzoa pisua funtzioa w, eta hori da zenbakia ematean ertzean e bakoitzean ematen da - pisua saiheskia - w (e). saiheskiak aniztasuna azpimultzo bakoitzaren pisua bere ertzak pisuak batura da. Beharrezko pisu txiki baten hezurdura aurkitu.

azalpena

Kruskal-en algoritmoa egiten du lan. Lehenik eta behin, hasierako grafikoan ertzak guztiak dira pisuak ordena behetik gora antolatuta. Hasieran, markoa ez du inolako saiheskiak eduki baina izkin guztiak barne hartzen ditu. Hurrengo dagoeneko eraikitako carcass, zein zubiak eraikiz baso bat da zati algoritmoaren urrats ondoren, ertz bat gehitzen da. Ez da arbitrarioki aukeratu. grafikoaren ertzetan guztiek ez markoa pertenecientes, deitu daiteke gorria eta berdea. ertz gorri bakoitzaren goiko eraikuntza baso konektibitatea azpian osagai berean daude, eta gailurretan berdea - ezberdinetan. Beraz, gehitu duzun ertza gorria bada, ez dago ziklo bat da, eta bada berdea - Urrats honen ondoren jaso egurra konektatutako osagai bat baino txikiagoa izango da. Horrela, sortutako eraikuntza ezin no ertz gorriak gehitzeko, baina edozein ertz berde gehitu daitezke basoan lortzeko. Eta gutxieneko pisua ertz berde bat gehitzen. Emaitza gutxieneko pisua esparru bat da.

ezartzea

Adierazteko egungo baso erpinak multzo banatzen F. It konektibitatea eremuan (haien batasuna forma F, eta dute disjuntu daude). bai erpinak gorri ertzetan gezurra pieza bat dute. Parte (x) - funtzioa erpina bakoitza x izen zati bat itzultzen, x dagokion. Unite (x, y) - partizioaren berria eraikitzen, x eta y zatiak eta beste zati guztiak konbinatuz osatutako prozedura bat. Demagun n - ertz kopurua. kontzeptu horiek guztiak Kruskal-en algoritmoa sartzen dira. ezartzea:

  1. Antolatu n-garren goranzko pisuak 1etik aurrera grafikoaren ertzetan guztiak. (Ai, bi - i erpina ertzean zenbakiarekin).

  2. i = 1 n egin.

  3. x: = zatia (ai).

  4. y: = zatia (bi).

  5. x ez du berdina y orduan elkartu (x, y) bada, ertz F i zenbaki batera, besteak beste.

zuzentasun

Dezagun T - jatorrizko grafikoan baziren eraiki Kruskal algoritmoa eta S erabiliz - bere markoa arbitrarioak. duten frogatu behar dugu w (T) ez w (S) baino handiagoa.

Demagun M - Hegats S, P pluraltasuna - Hegats pluraltasuna T. bada S ez da T berdina, orduan ez da bat-marko saiheskia et T, ez S. S. et dagokion adjoin zikloa, deritzo C. C edozein ertz es kendu, dagokion S. marko berri bat lortzeko ditugu, baita ertzak eta erpinak bera da. Bere pisua ez w (S), geroztik w (et) jada ez w (es) power Kruskal algoritmoa batean baino handiagoa da. Eragiketa honek (ordezkoa T S saiheskiak saiheskiak on) errepikatuko da, betiere jasoko T. gisa ondorengo jaso fotograma bakoitzaren pisua ez da aurreko pisua, horrek esan baino handiagoa w (T) ez w (S) baino handiagoa dela.

Kruskal-en algoritmoa sendotasuna Rado-Edmonds teorema matroids aurrera jarraitzen du.

Aplikazio Adibideak Kruskal algoritmoa

Dan nodo a, b, c, d, e eta saiheskiak (a, b), (a, e), (b, c), (b, e) duen grafikoa, (c, d), (c, e) , (d, e). ertz pisuak taulan eta irudian erakusten dira. Hasieran, eraikuntza baso F grafikoan erpinak guztiak ditu, eta ez du inolako saiheskiak eduki. Algorithm Kruskal lehenengo gehitu saiheskia (a, e), pisua txikiena izan zenetik, eta erpinak eta e osagai ezberdinak daude egurra konektibitatea F (saiheskia (a, e) berdea), ondoren saiheskia (c, d), baita hori gutxienez ertz grafikoan ertzak pisua honetan, ez F pertenecientes, eta berdea da, orduan arrazoi bera sortuko ertzean (a, b). Baina ertzean (b, e) gainditu da, nahiz eta berak eta gutxieneko gainerako ertz pisua, gorria delako: the erpinak b eta e baso konektibitatea F osagai berberak dira, hau da, gehitu dugu F badu ertzean (b, e), sortzen da zikloan. Ondoren, gehitu berdea ertzean (b, c), pasa den ertz gorria (c, e), eta ondoren, d, e. Horrela, ertz gehituko dira sekuentzialki (a, e), (c, d), (a, b), (b, c). nihera markoa optimoa aurrera eta jatorrizko grafikoa osatzen dute. Beraz, kasu honetan algoritmo bat funtzionatzen da Kruskal. Adibide bat erakusten da.

Kopuru grafiko bat, eta horrek bi osagai konektatutako ditu erakusten. lodia lerroak adierazi optimoa fotograma saiheskiak (berdea) eraiki Kruskal algoritmoa erabiliz.

Pisu minimoa hezurdura bat, berarentzat eraiki algoritmoa erabiliz - top irudi jatorrizko grafikoan, eta behean erakusten ditu.

erantsi saiheskiak sekuentzia (1,6); (0,3), (2,6) edo (2,6), (0,3) - ez da garrantzitsua; (3,4); (0,1), (1,6) edo (1,6), (0,1), ere axola (5,6).

Kruskal-en algoritmoa aplikazio praktikoa aurkitzen, adibidez, GASKET komunikazioak, errepideak, etxebizitza poligono herrialde bakoitzean Antsoaingo berriak, baita beste kasu batzuetan optimizatzeko.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 eu.delachieve.com. Theme powered by WordPress.