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> 57<br />

S2<br />

S2<br />

Figuur 5.9: De structuur van het sorteernetwerk S4<br />

M4<br />

4 1 1<br />

1<br />

3<br />

2<br />

4<br />

2<br />

3<br />

Figuur 5.10: Werking van S4 bij het sorter<strong>en</strong> van (4,1,3,2)<br />

plus 2s n/2. Aangezi<strong>en</strong> Mn grootte nlog 2 n/2 heeft, krijg<strong>en</strong> we de volg<strong>en</strong>de recurr<strong>en</strong>te betrekking<br />

voor sn:<br />

sn = nlog 2 n/2+2s n/2.<br />

Daaruit kunn<strong>en</strong> we gemakkelijk afleid<strong>en</strong> dat sn = Θ(nlog 2 n).<br />

5.1.4 Het nul-e<strong>en</strong>-principe voor sorteernetwerk<strong>en</strong><br />

Om het achterligg<strong>en</strong>de idee achter de constructie van sorteernetwerk<strong>en</strong> te b<strong>en</strong>adrukk<strong>en</strong>, hebb<strong>en</strong><br />

we de correctheid van de gezi<strong>en</strong>e sorteernetwerk<strong>en</strong> tot nu toe rechtstreeks bewez<strong>en</strong>. In deze paragraaf<br />

besprek<strong>en</strong> we e<strong>en</strong> e<strong>en</strong> tool die dergelijke bewijz<strong>en</strong> dikwijls vere<strong>en</strong>voudigt, het zog<strong>en</strong>aamde<br />

nul-e<strong>en</strong>-principe.<br />

Stelling 5.1.13. Als e<strong>en</strong> sorteernetwerk correct werkt op alle mogelijke inputs bestaande uit<br />

<strong>en</strong>kel null<strong>en</strong> <strong>en</strong> <strong>en</strong><strong>en</strong>, dan werkt het ook correct voor willekeurige inputs.<br />

Deze stelling laat ons toe om sorteernetwerk<strong>en</strong> te verifiër<strong>en</strong> door ze <strong>en</strong>kel op rij<strong>en</strong> van null<strong>en</strong> <strong>en</strong><br />

<strong>en</strong><strong>en</strong> te test<strong>en</strong>. Voor e<strong>en</strong> netwerk met n inputs, betek<strong>en</strong>t dit dat we hoogst<strong>en</strong>s 2 n inputs moet<strong>en</strong><br />

test<strong>en</strong>, in teg<strong>en</strong>stelling tot oneindig veel.<br />

Bewijs. Veronderstel dat er e<strong>en</strong> sorteernetwerk is dat alle rij<strong>en</strong> van null<strong>en</strong> <strong>en</strong> <strong>en</strong><strong>en</strong> correct sorteert,<br />

maar dat e<strong>en</strong> zekere rij van getall<strong>en</strong> (a0,...,an−1) niet correct sorteert.<br />

Zij (b0,...,bn−1) de output die het sorteernetwerk geeft wanneer het de rij (a0,...,an−1) als<br />

input krijgt. Aangezi<strong>en</strong> de output niet correct gesorteerd is, moet er e<strong>en</strong> s < t bestaan waarvoor<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 />

2<br />

4<br />

3<br />

1<br />

2<br />

3<br />

4

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

Saved successfully!

Ooh no, something went wrong!