Zur Haupt­na­vi­ga­ti­on sprin­gen [Alt]+[0] Zum Sei­ten­in­halt sprin­gen [Alt]+[1]

Do­mi­nie­ren­de Men­gen

Be­grif­fe: Nä­he­rungs­lö­sung, Gree­dy-Ver­fah­ren, Do­mi­nie­ren­de Menge, Back­tracking

Der Bil­dungs­plan bie­tet zwei ver­schie­de­ne Bei­spie­le für NP-voll­stän­di­ge Pro­ble­me an: Do­mi­nie­ren­de Men­gen und das Kar­ten­fär­be­pro­blem. Ein wei­te­res Stan­dard­bei­spiel ist das Tra­ve­ling Sa­les­man Pro­blem. Beim Kar­ten­fär­be­pro­blem wird nicht ganz so schön das Kon­zept "Wähle die Er­wei­te­rung der bis­he­ri­gen Teil­lö­sung, die den größ­ten Ge­winn/das beste Er­geb­nis ver­spricht" deut­lich. Die Wahl der Farbe des nächs­ten Kno­tens ist recht will­kür­lich, wenn man nicht eine bis­her noch gar nicht be­nutz­te Farbe wählt und damit das Er­geb­nis ver­schlech­tert. Daher emp­fiehlt sich ein Ein­stieg mit dem Pro­blem, eine mög­lichst klei­ne do­mi­nie­ren­de Menge zu fin­den.

Die Be­stim­mung einer mög­lichst klei­nen do­mi­nie­ren­den Menge er­scheint auf den ers­ten Blick nicht schwe­rer als die bis­he­ri­gen Pro­ble­me. An­hand des Pro­blems, Eis­ver­kaufs­stän­de nach be­stimm­ten Kri­te­ri­en über die Stadt zu ver­tei­len, kann aber ge­zeigt wer­den, dass es gar nicht so ein­fach ist, eine op­ti­ma­le Lö­sung zu fin­den. Wenn man eine Lö­sung ge­fun­den hat, ist man sich in der Regel nicht si­cher, ob es nicht noch eine bes­se­re gibt. Der Nach­weis ge­lingt nur, wenn man alle Mög­lich­kei­ten, die Eis­stän­de zu ver­tei­len, un­ter­sucht und die beste aus­ge­wählt hat. Um den Schü­le­rin­nen und Schü­lern das Aus­pro­bie­ren vie­ler Va­ri­an­ten zu er­leich­tern, kön­nen Sie ihnen neben dem Ar­beits­blatt fünf­zehn "Eistü­ten"-Bil­der aus­ge­ben, die man auf dem Stadt­plan ver­tei­len kann. Fünf­zehn Eis­stän­de sind auf jeden Fall aus­rei­chend, um die Stadt ab­zu­de­cken.

Hän­disch ist es kaum mög­lich, alle Va­ri­an­ten aus­zu­pro­bie­ren. Dies wird deut­lich, wenn man die An­zahl der mög­li­chen Teil­men­gen der Kno­ten des Gra­phen be­rech­net. Da jeder Kno­ten da­zu­ge­hö­ren kann oder auch nicht, gibt es für jeden Kno­ten 2 Mög­lich­kei­ten. Damit er­gibt sich bei n Kno­ten die An­zahl der Mög­lich­kei­ten mit 2n (im Ein­stiegs­bei­spiel also 231 ≈ 2,1 Mil­li­ar­den). Ei­ni­ge schei­den davon si­cher­lich so­fort aus, aber wer kann wis­sen, ob eine un­ge­wöhn­li­che Lö­sung nicht doch ein bes­se­res Ge­samt­er­geb­nis bringt. Mit Hilfe des Gra­phen­tes­ters kön­nen für klei­ne­re Gra­phen per Back­tracking ("Do­mi­nie­ren­de Menge (Voll­stän­dig)") alle Va­ri­an­ten durch­pro­biert und die op­ti­ma­le Lö­sung be­stimmt wer­den.

Soll­ten Sie das Thema Back­tracking im Un­ter­richt schon be­han­delt haben, kön­nen Sie das Ver­fah­ren an die­ser Stel­le er­neut auf­grei­fen. An­dern­falls kön­nen Sie es an die­ser Stel­le ein­füh­ren oder es auch bei der Aus­sa­ge be­las­sen, dass alle Va­ri­an­ten durch­pro­biert wer­den. Für den wei­te­ren Un­ter­richts­ver­lauf reicht es zu wis­sen, dass die­ser Al­go­rith­mus sys­te­ma­tisch alle Va­ri­an­ten durch­pro­biert.

Dazu wird der Al­go­rith­mus im Si­mu­la­ti­ons­mo­dus aus­ge­führt und Gra­phen mit 5-10 Kno­ten un­ter­sucht. Stellt man den Ge­schwin­dig­keits­reg­ler bei 5 Kno­ten so ein, dass es etwa 3 Sek. dau­ert, den Al­go­rith­mus voll­stän­dig (ohne Ein­zel­schritt­mo­dus) aus­zu­füh­ren, dann be­nö­tigt man mit 10 Kno­ten etwa 25=32 Mal so lange. Eine War­te­zeit von 1,5 min ist schon recht ein­drucks­voll. Ziel ist es, dass die Schü­le­rin­nen und Schü­ler er­ken­nen, dass das Hin­zu­fü­gen eines ein­zi­gen Kno­tens die Lauf­zeit ver­dop­pelt. Sie liegt also in O(2n).

Dass man keine guten Al­go­rith­men mit po­ly­no­mi­el­ler Lauf­zeit für diese Art von Pro­ble­men kennt, kann man den Schü­lern nur mit­tei­len. Es ist im Bil­dungs­plan nicht vor­ge­se­hen, den Be­griff der NP-Voll­stän­dig­keit ein­zu­füh­ren. Es reicht, wenn Schü­ler er­klä­ren kön­nen, wie die ex­po­nen­ti­el­le Lauf­zeit zu­stan­de kommt und dass diese so schnell steigt, dass der Al­go­rith­mus für grö­ße­re Gra­phen auch mit sehr schnel­len Rech­nern in sinn­vol­ler Zeit nicht durch­führ­bar ist.

Sie sol­len ler­nen, dass in die­sen Fäl­len eine Nä­he­rungs­lö­sung die ein­zi­ge prak­ti­ka­ble Lö­sung ist. Der Bil­dungs­plan schlägt das Gree­dy-Ver­fah­ren als Bei­spiel für eine Stra­te­gie vor, eine Nä­he­rungs­lö­sung zu fin­den. An­de­re Ver­fah­ren sind denk­bar, aber nicht so leicht zu­gäng­lich. Es ist aber si­cher sinn­voll, an­de­re Ver­fah­ren zu zei­gen (im Gra­phen­tes­ter ste­hen für ver­schie­de­ne Pro­ble­me fer­ti­ge Al­go­rith­men be­reit), damit nicht der Ein­druck ent­steht, dass die Gree­dy- Stra­te­gie die ein­zi­ge Mög­lich­keit sei.

Die Grund­idee des Gree­dy-Ver­fah­rens lässt sich leicht auch auf an­de­re Pro­ble­me über­tra­gen. Die Im­ple­men­tie­rung bleibt dabei na­he­zu gleich. Ent­schei­dend für die Qua­li­tät der Nä­he­rungs­lö­sung ist die Aus­wahl der bes­ten Er­wei­te­rung der bis­he­ri­gen Teil­lö­sung: Wie wählt man den nächs­ten Kno­ten aus, der zur do­mi­nie­ren­den Menge da­zu­ge­hö­ren soll?

Den Schü­le­rin­nen und Schü­lern wer­den dazu ver­schie­de­ne Stra­te­gi­en an­ge­bo­ten, die sie zu­nächst ohne Com­pu­ter­un­ter­stüt­zung be­wer­ten sol­len. Da­nach kön­nen die ver­schie­de­nen Va­ri­an­ten mit dem Gra­phen­tes­ter aus­pro­biert wer­den ("Do­mi­nie­ren­de Menge (Gree­dy (a-i))"). Stel­len Sie den Schü­lern diese Al­go­rith­men erst zu die­sem Zeit­punkt be­reit, da die Al­go­rith­men ohne die da­zu­ge­hö­ri­ge Auf­ga­ben­stel­lung nicht hilf­reich sind und durch die große Zahl ver­schie­de­ner Va­ri­an­ten die Aus­wahl im Gra­phen­tes­ter do­mi­niert. Es ste­hen zwei Gra­phen be­reit, bei denen sechs bzw. zehn Kno­ten mit einem Stern (*) mar­kiert sind, die die op­ti­ma­le do­mi­nie­ren­de Menge dar­stel­len. Diese Gra­phen sind so kon­stru­iert, dass die mar­kier­ten Kno­ten den Gra­phen genau ein­mal über­de­cken. Kein Kno­ten ist zwei mar­kier­ten Kno­ten be­nach­bart7 . Es lässt sich be­ur­tei­len, wie gut die Nä­he­rungs­lö­sung ist. Keine der Stra­te­gi­en lie­fert immer eine sehr gute Nä­he­rungs­lö­sung.

Eine Va­ri­an­te der Be­stim­mung einer Nä­he­rungs­lö­sung soll­ten die Schü­le­rin­nen und Schü­ler auch hän­disch durch­füh­ren kön­nen. Hier emp­fiehl sich die Va­ri­an­te "der Kno­ten, der die meis­ten noch nicht über­deck­ten Kno­ten über­deckt". Diese lässt sich gut hän­disch oder im Ex­pe­ri­men­tier­mo­dus des Gra­phen­tes­ters mit einem Graph mit 10 oder 15 Kno­ten durch­füh­ren: Im Gra­phen­tes­ter star­tet man mit einer Liste aller Kno­ten und durch­sucht sie nach dem "bes­ten" Kno­ten. Aus­ge­wähl­te Kno­ten kann man aus der Liste ent­fer­nen. Die aus­ge­wähl­ten Kno­ten mar­kiert man rot, die über­deck­ten grün. In jedem Schritt wählt man den­je­ni­gen Kno­ten aus, bei dem die meis­ten noch nicht mar­kier­ten (grau­en) Kno­ten zu sehen sind/be­nach­bart sind. Er selbst zählt auch mit. Wich­tig ist, dass auch schon grün mar­kier­te Kno­ten aus­ge­wählt wer­den dür­fen und dann rot ein­ge­färbt wer­den. Wenn man kei­nen grau­en/un­mar­kier­ten Kno­ten mehr fin­det, ist man fer­tig. Es ist er­staun­lich, dass man in der Frosch­per­spek­ti­ve eine recht gute Lö­sung fin­den kann, ohne den gan­zen Gra­phen im Blick zu haben.

Allen Nä­he­rungs­lö­sun­gen ge­mein­sam ist, dass sie eine deut­lich bes­se­re Lauf­zeit haben als die Back­tracking-Va­ri­an­te. Dies liegt daran, dass bei n Kno­ten im Gra­phen ma­xi­mal n mal der "beste" Kno­ten aus­ge­wählt und der do­mi­nie­ren­den Menge hin­zu­ge­fügt wird. Wenn die Aus­wahl in po­ly­no­mi­el­ler Zeit durch­führ­bar ist, dann ist es auch der ganze Al­go­rith­mus. Es ist sehr schwer, die Grö­ßen­ord­nung der Lauf­zeit für einen Al­go­rith­mus zu er­mit­teln, da es dabei auf die Lauf­zeit der Ope­ra­tio­nen auf dem Gra­phen an­kommt. Diese hängt mit der ge­wähl­ten Re­prä­sen­ta­ti­on und der Im­ple­men­tie­rung der Ope­ra­tio­nen in der Klas­se Graph zu­sam­men (siehe Re­prä­sen­ta­ti­on von Gra­phen). Da diese den Schü­le­rin­nen und Schü­lern nicht be­kannt ist, kön­nen sie nur die po­ly­no­mi­el­le Lauf­zeit fest­stel­len. Dies kann aber zum An­lass ge­nom­men wer­den, sich über die Re­prä­sen­ta­ti­on von Gra­phen Ge­dan­ken zu ma­chen.

Er­gän­zung: asym­me­tri­sche Ver­schlüs­se­lung mit ex­ak­ten do­mi­nie­ren­den Men­gen

Wer eine Schnitt­stel­le zur Kryp­to­lo­gie her­stel­len möch­te, kann eine Stun­de zur asym­me­tri­schen Ver­schlüs­se­lung mit Hilfe von Gra­phen ein­schie­ben. Dabei gibt man den Schü­le­rin­nen und Schü­lern einen fer­ti­gen Gra­phen (2 Ko­pi­en: Zwi­schen­stu­fe und ver­schlüs­sel­te Nach­richt), also den öf­fent­li­chen Schlüs­sel und er­läu­tert das Ver­fah­ren. Die Schü­ler ver­schlüs­seln nach die­ser An­lei­tung eine Zahl und legen dem Leh­rer die ver­schlüs­sel­te Nach­richt vor. Der Leh­rer ent­schlüs­selt diese Zahl "im Kopf".

Dar­auf­hin er­hal­ten die Schü­ler eine ver­schlüs­sel­te Nach­richt und ver­su­chen, auch die Zahl zu er­mit­teln (Bre­chen der Ver­schlüs­se­lung). Es reicht, einen recht ein­fa­chen Gra­phen zu wäh­len, da man die ex­ak­te do­mi­nie­ren­de Menge nicht so ein­fach "sehen" kann. Manch­mal kom­men Schü­ler auf die Idee, das Pro­blem mit li­nea­ren Glei­chungs­sys­te­men zu lösen.

Es wird deut­lich, dass bei Kennt­nis des Ge­heim­nis­ses die Ent­schlüs­se­lung ein­fach, ohne aber sehr schwer ist. Die Kennt­nis des öf­fent­li­chen Schlüs­sels hilft dabei nicht.

7 Siehe An­lei­tung zur Er­stel­lung sol­cher Gra­phen im Hin­ter­grund.

 

Un­ter­richts­ver­lauf: Her­un­ter­la­den [odt][298 KB]

 

Wei­ter zu Re­prä­sen­ta­ti­on von Gra­phen