biton fajta | |
---|---|
| |
Szerző | Kenneth Edward Batcher |
célja | Rendezési algoritmus |
legrosszabb idő | |
Legjobb idő | |
Átlagos idő |
A bitonikus rendezés egy párhuzamos algoritmus az adatok rendezésére , egy rendezési hálózat létrehozásának módszere . Kenneth Batcher amerikai informatikus fejlesztette ki 1968-ban. Az algoritmus a "bitonszekvencia" fogalmán alapul. A nevet a monoton szekvenciával [1] analógia alapján választottuk ki .
A bitonikus rendezés az egyik legrégebbi párhuzamos rendezési algoritmus [2] . A páros-páratlan egyesítési rendezés mellett ez az egyik első módszer tetszőleges számú bemenethez rendezési hálózat felépítésére [3] .
Az algoritmus a bitonikus sorozatok rendezésén alapul. Ilyen sorozatnak nevezzük azt a sorozatot, amely először nem monoton csökken, majd nem növekszik monoton, vagy ciklikus eltolódás következtében ilyen formára redukálódik [3] [4] [2] .
Bármely bitonikus szekvencia, minden egy vagy két elemből álló szekvencia, valamint bármely monoton szekvencia szintén bitonikus. Például a {3,5,10,4,1}, {1,5}, {10,14,5,-1,-4} sorozatok bitonikusak, de a {4,6,1,9,2 } are not is. A rendezetlen elemek minden egyes halmaza két elemből álló bitonsorozatok halmazának tekinthető [3] [4] [5] [2] .
A bitonikus egyesítési folyamat a bitonikus sorozatot teljesen rendezett szekvenciává alakítja. A bitonikus rendezési algoritmus bitonikus transzformációk alkalmazásából áll, amíg a halmaz teljesen rendeződik [5] [2] .
Az ábrán egy 16 elemből álló bitonos rendezési hálózat látható, amely növekvő sorrendben rendezi a halmazt. A nyilak az összehasonlítókat jelölik , amelyek két számot hasonlítanak össze, és szükség esetén felcserélik őket úgy, hogy a nyíl iránya a nagyobb számra mutasson.
A piros téglalapokat zöld és kék téglalapokká egyesítik. A kék téglalapokban a komparátorok nyilai lefelé mutatnak (növekvő sorozatokat hoznak létre), a zöld téglalapoknál felfelé mutatnak (csökkenő sorozatokat hoznak létre). Ezeknek a téglalapoknak ugyanaz a felépítése: a piros téglalapot a teljes sorozatra alkalmazzuk, majd az eredmények mindegyik felére, és így tovább. Ha egy ilyen téglalap bemeneteire bitonikus sorozatot táplálunk, akkor a kimeneten egy teljesen rendezett szekvenciává alakítjuk. A kék és zöld mezők együttes eredménye egy bitonikus sorozat.
A kék és zöld téglalapok minden oszlopa N darab rendezett sorozatot vesz (a legelső lépésben 16 rendezett sorozatot 1 elemmel), és N/2 rendezett sorozattá alakítja őket.
Létezik egy alternatív és elterjedtebb ábrázolása a Biton fajtának, amely eltér Butcher eredeti verziójától. Az adatokat különböző irányba mozgó komparátoroktól való megszabadulás érdekében megváltoztattuk a köztük lévő kapcsolatokat, azon tulajdonság alapján, hogy bármelyik két rendezett sorozatból (azaz monotonból) bitonikus szekvenciát kaphatunk, ha az egyikben a sorrendet az ellenkezőjére változtatjuk [ 4 ] .
Így az ábra összes kék téglalapja ugyanazokat a műveleteket hajtja végre. A barna téglalapok módosított piros blokkok, amelyek be- és kimenetei alul fordított sorrendben vannak csatlakoztatva.
Az 1960-as évek közepén Kenneth Batcher a Goodyear Aerospace nél dolgozott , ahol több ezer feldolgozóelemet tartalmazó párhuzamos processzorok tervezésével foglalkozott. Az adatok rendezési problémájának megoldásán dolgozva arra a következtetésre jutott, hogy a szekvenciális rendezési algoritmusok túl lassúak, és szükséges tanulmányozni a párhuzamos rendezési algoritmusok létrehozásának lehetőségét. Áttekintette a jól ismert egyesítést , és megállapította, hogy annak első lépései könnyen párhuzamosíthatók, de a későbbi összevonások szekvenciálisak és időigényesek. Ennek eredményeként felfedezett két egyesítésen alapuló algoritmust, a bitonikus rendezést és a páros-páratlan összevonási rendezést . Batcher ezeket az algoritmusokat az 1968-as Joint Computer Conference "Sorting Networks and their applications" című cikkében mutatta be [3] .
Batcher később maga is elismerte, hogy a név írástudatlan, mivel egy latin előtagot és egy görög gyökeret egyesít. Helyesebb elnevezés a "ditonikus" [3] [5] .
A bitonikus rendezés az egyik első párhuzamos rendezési algoritmus. Ennek az algoritmusnak a közzététele, valamint a Batcher által is javasolt páros-páratlan összevonási rendezési algoritmussal együtt ösztönözte a párhuzamos algoritmusok tervezésének és elemzésének kidolgozását általában, és különösen a párhuzamos rendezést [2] .
Nagy párhuzamosságuk miatt a bitonszortírozókat széles körben alkalmazzák olyan eszközökben, amelyek masszívan párhuzamos számítást céloznak, mint például a GPU -k [6] és az FPGA -k [7] , de a modern szuperszámítógépekben ritkán használják [1] .
A korai GPU-kban a korlátozott API és a szórási művelet elérhetetlensége miatt a bitonikus rendezés volt a domináns algoritmus. Különösen a GPU-k számára fejlesztették ki a "GNUTeraSort" algoritmust, amely a bitonikus és bitonikus rendezésen , majd a GPU-ABiSorton alapul, adaptív bitonikus rendezést használva. A CUDA hardver- és szoftverarchitektúrájának megjelenésével más párhuzamos rendezési algoritmusok hatékony változatai is megjelentek, és jelenleg a bitenkénti rendezés dominál a GPU-n [1] .
Rendezési algoritmusok | |
---|---|
Elmélet | Bonyolultság O jelölés Rendelési viszony Típusok rendezése fenntartható Belső Külső |
Csere | |
Választás | |
betétek | |
egyesülés | |
Nincs összehasonlítás | |
hibrid | |
Egyéb | |
nem praktikus |