03.07.2013 Views

Algoritmen en Datastructuren III Partim: Parallelle algoritmen - caagt

Algoritmen en Datastructuren III Partim: Parallelle algoritmen - caagt

Algoritmen en Datastructuren III Partim: Parallelle algoritmen - caagt

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

5.1. Sorteernetwerk<strong>en</strong> 59<br />

1 1<br />

1<br />

1<br />

0<br />

1<br />

0<br />

1<br />

0<br />

1<br />

0 0<br />

1<br />

1 1<br />

(a) Eerste 0 beweegt naar lijn 1 (b) Vertraging van 1 stap<br />

Figuur 5.12: Het nul-e<strong>en</strong>-principe voor het odd-ev<strong>en</strong>-transposition netwerk<br />

1 1<br />

1<br />

0<br />

1<br />

0<br />

0<br />

1<br />

0<br />

1<br />

0<br />

0<br />

1<br />

0<br />

1<br />

0<br />

1<br />

0<br />

1<br />

0<br />

1<br />

1<br />

1<br />

0<br />

0 1 1 1<br />

Figuur 5.13: Sorter<strong>en</strong> van (1,1,0,1,0,0) met het odd-ev<strong>en</strong>-tranposition netwerk<br />

Algeme<strong>en</strong> kunn<strong>en</strong> we drie toestand<strong>en</strong> voor elke 0 in de rij onderscheid<strong>en</strong>: “geblokkeerd”, “in<br />

beweging” <strong>en</strong> “aangekom<strong>en</strong>”. Er zijn twee gevall<strong>en</strong> van blokkering<strong>en</strong> die e<strong>en</strong> 0 belett<strong>en</strong> om naar<br />

zijn plaats te beweg<strong>en</strong>: ofwel in verkeerde fase zitt<strong>en</strong> (zoals de eerste nul op e<strong>en</strong> ev<strong>en</strong> lijn in<br />

Figuur 5.12), ofwel word<strong>en</strong> opgehoud<strong>en</strong> door e<strong>en</strong> voorafgaande 0 die nog niet beweegt.<br />

Door inductie kunn<strong>en</strong> we aanton<strong>en</strong> dat de k-de nul in de rij t<strong>en</strong> laatste in de (k+1)-de laag begint<br />

te beweg<strong>en</strong>, totdat ze haar positie bereikt heeft. Immers, zoals reeds eerder uitgelegd, begint de<br />

eerste 0 te beweg<strong>en</strong> in de eerste of tweede laag, <strong>en</strong> dan beweegt ze onmiddellijk verder naar haar<br />

uiteindelijke positie (aangezi<strong>en</strong> er ge<strong>en</strong> blokker<strong>en</strong>de null<strong>en</strong> vooraf kunn<strong>en</strong> gaan). De tweede<br />

nul kan <strong>en</strong>kel door de eerste nul word<strong>en</strong> geblokkeerd, wanneer de eerste nul nog niet aan het<br />

beweg<strong>en</strong> is. Dus begint de tweede nul ofwel in de tweede ofwel in de derde laag te beweg<strong>en</strong>,<br />

m.a.w. t<strong>en</strong> laatste in de derde laag. Algeme<strong>en</strong> kan de k-de nul <strong>en</strong>kel word<strong>en</strong> geblokkeerd door<br />

de voorafgaande null<strong>en</strong>, die allemaal t<strong>en</strong> laatste in de k-de laag beginn<strong>en</strong> te beweg<strong>en</strong>. Dus,<br />

afhankelijk van de fase, zal de k-de nul beginn<strong>en</strong> beweg<strong>en</strong> in de k-de of in de (k+ 1)-de laag.<br />

De k-de nul kan hoogst<strong>en</strong>s n − k posities van zijn uiteindelijk positie verwijderd zijn. Aangezi<strong>en</strong><br />

ze t<strong>en</strong> laatste in de (k+ 1)-de laag begint te beweg<strong>en</strong>, zijn er dan nog n − k lag<strong>en</strong> over waarin ze<br />

naar haar uiteindelijke positie kan beweg<strong>en</strong>.<br />

Voorbeeld 5.1.15. We bekijk<strong>en</strong> het sorter<strong>en</strong> van de rij (1,1,0,1,0,0) op het odd-ev<strong>en</strong>-transposition<br />

netwerk. Figuur 5.13 toont de werking van het netwerk.<br />

<strong>Algoritm<strong>en</strong></strong> <strong>en</strong> Datastructur<strong>en</strong> <strong>III</strong> Veerle.Fack@UG<strong>en</strong>t.be<br />

0<br />

1<br />

0<br />

1<br />

0<br />

0<br />

0<br />

1<br />

1<br />

0<br />

0<br />

0<br />

1<br />

1<br />

1<br />

1<br />

1<br />

1<br />

1<br />

0<br />

1<br />

1<br />

1<br />

0<br />

1<br />

0<br />

0<br />

1

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!