Kasutaja:Hmanaad/Lloyd'i algoritm

Allikas: Vikipeedia

Lloydi algoritm ehk Voronoi iteratsioon on arvutiteaduses ja elektrotehnikas kasutatav algoritm, mis leiab eukleidilises ruumis asuvate punktide puhul neile vastavad kumerad alamhulgad, kuid on kasutatav ka teistes geomeetriates. Mitmemõõtmelistes eukleidilistes geomeetriates ja mitte-eukleidilistes geomeetriates ei pruugi algoritm koonduda või koondub mingiks lokaalseks optimumiks[1]. Algoritm sobib pideva hulga kvantiseerimiseks, sest koondub optimaalseks diskreetseks lähendiks vastavale pidevale hulgale.

Algoritm on sarnane k-keskmise klasterdamise algoritmiga. Kahe algoritmi vahe seisneb selles, et k-keskmise klasterdamise algoritm töötab lõpliku hulga punktide peal, aga Lloydi algoritm põhineb pidevatel hulkadel. Sellest tulenevalt kasutatakse Lloydi algoritmis tsentrite ümberpaigutamiseks Voronoi diagramme, mitte lõplikke punktihulkasid.

Algoritm on nime saanud selle koostaja, Stuart P. Lloydi järgi. Tegu on Lloydi tuntuima teadustööga ning algoritm aitas parandada sideühendust satelliitidega, kõrgendada krediitkaartide turvalisust ning edendada arvutigraafikat.[1]

Algoritmi kirjeldus[muuda | muuda lähteteksti]

Algoritmi käivitamiseks on vaja sellele ette anda alglähend, mis koosneb k punktist. Järgnevalt viiakse läbi algoritmi sammud, millest iga käigus:

  • arvutatakse Voronoi diagramm antud lähendi puhul (k punkti),
  • leitakse iga Voronoi diagrammi tüki keskpunkt,
  • leitud k keskpunkti võetakse uueks lähendiks.

Rohkem kui kahemõõtmelistes ruumides muutuvad Voronoi diagrammi konstrueerimine ja sellest tulenevalt ka diagrammi iga tükelduse tsentri leidmine mitte-triviaalseks. Sellest tulenevalt kasutatakse praktikas Voronoi tükelduse leidmiseks diskreetseid lähendeid või Monte Carlo meetodeid.

Koondumine[muuda | muuda lähteteksti]

Algoritmi igal sammul muutub lähendite paikenemine aina ühtlasemaks. Punktid, mis on üksteisest kaugel, liiguvad rohkem lähestikku ja punktid, mis on üksteisele lähedal, liigutatakse üksteisest eemale. Ühedimensionaalses eukleidilises ruumis koonduvad lähendid algoritmi tulemusena tsentraalseks Voronoi diagrammiks[2]. Kõrgemates dimensioonides on teada mõningad nõrgemad koondumistunnused ja on ka võimalik, et algoritm koondub lokaalsesse optimumi.[3][4]

Algoritmi rakendamisel ei pruugi koondumine olla absoluutne ja seega kasutatakse enamasti spetsiaalseid koondumistingimusi. Kõige laialtlevinumaks koondumistingimuseks on , kus on punktide arv, iteratsioonide arv ja on valitud koondumispiir[3]. Koondumise kiirendamiseks kasutatakse meetodit, mille puhul igal iteratsioonil liigutatakse igat punkti koondumise sihis, aga kaks korda kaugemale kui algoritmi tavalise talituse puhul[5].

Kasutusalad[muuda | muuda lähteteksti]

Algoritmi kasutati algselt ainult ühedimensionaalseks kvantimiseks, aga see leidis hiljem rakendust ka mitmemõõtmeliste probleemide puhul. Laialdast kasutust on algoritm leidnud andmete pakkimisel informatsiooniteoorias, kus analoogseid signaale on vaja diskreetseteks signaalideks konverteerida.

Lloydi algoritm on leidnud kasutust ka arvutigraafikas, kus seda kasutatakse hulknurkadest koosnevate kolmedimensionaalsete kujundite silumiseks. Selle asemel, et lasta algoritmil koonduda, lastakse algoritmil joosta teatud arv kordi, mille käigus hulknurkade suurust ja kuju muudetakse ühtlasemaks. Algoritmi rakendamise eesmärgiks on saavutada kumerama siluetiga kujundid.[6]

Viited[muuda | muuda lähteteksti]

  1. Lloyd, Stuart P. (1982), "Least squares quantization in PCM", IEEE Transactions on Information Theory, 28 (2): 129–137, DOI:10.1109/TIT.1982.1056489.
  2. Du, Qiang; Emelianenko, Maria; Ju, Lili (2006), "Convergence of the Lloyd algorithm for computing centroidal Voronoi tessellations", SIAM Journal on Numerical Analysis, 44: 102–119, DOI:10.1137/040617364.
  3. 3,0 3,1 Sabin, M. J.; Gray, R. M. (1986), "Global convergence and empirical consistency of the generalized Lloyd algorithm", IEEE Transactions on Information Theory, 32 (2): 148–155, DOI:10.1109/TIT.1986.1057168.
  4. Emelianenko, Maria; Ju, Lili; Rand, Alexander (2009), "Nondegeneracy and Weak Global Convergence of the Lloyd Algorithm in Rd", SIAM Journal on Numerical Analysis, 46: 1423–1441, DOI:10.1137/070691334.
  5. Xiao, Xiao. "Over-relaxation Lloyd method for computing centroidal Voronoi tessellations." (2010).
  6. Du, Qiang; Faber, Vance; Gunzburger, Max (1999), "Centroidal Voronoi tessellations: applications and algorithms", SIAM Review, 41 (4): 637–676, DOI:10.1137/S0036144599352836.