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

Mo­del­lie­rung von Pro­ble­men mit Gra­phen

Die Mo­dell­bil­dung ist ein in der In­for­ma­tik ent­schei­den­der Vor­gang, dem im Bil­dungs­plan durch die pro­zess­be­zo­ge­ne Kom­pe­tenz "2.2 Mo­del­lie­ren und Im­ple­men­tie­ren" Rech­nung ge­tra­gen wird. Die SuS sol­len "vor­lie­gen­de In­for­ma­tio­nen für die Lö­sung ge­eig­net auf­be­rei­ten (zum Bei­spiel durch Fil­tern, Re­duk­ti­on, Ka­te­go­ri­sie­ren)" und "cha­rak­te­ris­ti­sche und verall­gemeiner­bare Be­stand­tei­le her­aus­ar­bei­ten (Abs­trak­ti­on)".

Um von einem Pro­blem zu einer sinn­vol­len Mo­del­lie­rung zu kom­men, muss also als ers­tes ent­schie­den wer­den, wel­che In­for­ma­tio­nen der Pro­blem­stel­lung re­le­vant sind und wel­che nicht. Dies wird als Me­tho­de der Abs­trak­ti­on be­zeich­net: "Die Ver­wen­dung von Abs­trak­ti­on als Me­tho­de be­freit uns von dem Zwang, bei der Dar­stel­lung der Wirk­lich­keit auch Dinge zu re­prä­sen­tie­ren, die uns nicht in­ter­es­sie­ren. Abs­trak­ti­on ver­wen­den wir immer auch dann, wenn die Rea­li­tät zu kom­plex oder zu um­fang­reich ist, um sie zu er­fas­sen oder zu ma­ni­pu­lie­ren. Rea­li­tät be­deu­tet in die­sem Fall ge­bau­te oder ge­plan­te Ar­chi­tek­tur. Jeder Ver­such, die Wirk­lich­keit zu re­prä­sen­tie­ren, ist be­reits eine Abs­trak­ti­on. Die ein­zi­ge voll­stän­di­ge Re­prä­sen­ta­ti­on der Wirk­lich­keit ist das Ob­jekt selbst. Abs­trak­ti­on wird damit zu einer wich­ti­gen Ei­gen­schaft der Re­prä­sen­ta­ti­on."9

Gal­len­ba­cher stellt dies in sei­nem Buch "Aben­teu­er In­for­ma­tik"10 am Bei­spiel des Di­jk­s­tra-Al­go­rith­mus schön dar. Er be­ginnt mit einer Land­kar­te und lässt den Leser über­le­gen, wel­che der fol­gen­den In­for­ma­tio­nen re­le­vant sind: Name der Städ­te, Po­si­ti­on der Städ­te, Größe der Städ­te, Länge der Stra­ße, Ver­lauf der Stra­ße usw. Man stellt fest, dass nur we­ni­ge In­for­ma­tio­nen wirk­lich not­wen­dig sind. Dabei stellt man fest, dass z.B. die Po­si­ti­on der Städ­te und der Ver­lauf der Stra­ßen völ­lig un­er­heb­lich sind. Auf Ebene der Gra­phen for­mu­liert: Man darf den Graph iso­morph um­for­men, ohne dass sich etwas am Er­geb­nis der Be­rech­nung des kür­zes­ten Weges än­dert.

Als zwei­ten Schritt schlägt Gal­len­ba­cher noch vor, die Me­tho­de der Gleich­for­mung an­zu­wen­den, um Spe­zi­al­fäl­le zu ver­mei­den und sie mög­lichst auf den Stan­dard­fall zu­rück­zu­füh­ren. Bei der Rou­ten­pla­nung hat man zu­nächst die Idee, die Städ­te als Kno­ten eines Gra­phen zu de­fi­nie­ren. Nicht jede Stra­ße ver­bin­det aber genau zwei Städ­te. Meist gibt es Kreu­zun­gen da­zwi­schen mit Ab­zwei­gun­gen zu an­de­ren Städ­ten. Sinn­voll ist es hier, auch die Kreu­zun­gen wie Städ­te als Kno­ten zu mo­del­lie­ren. Es wird zwar ver­mut­lich nie je­mand diese Kreu­zun­gen als Start- oder Ziel­ort wäh­len, aber es ver­ein­facht den Al­go­rith­mus er­heb­lich, wenn keine Spe­zi­al­fäl­le auf­tre­ten.

Gra­phen als Mo­del­le

Die Ein­heit Gra­phen ist bes­tens ge­eig­net, Mo­dell­bil­dung zu üben, da Gra­phen für eine große Band­brei­te ver­schie­de­ner An­wen­dun­gen ge­eig­net sind. Die Be­deu­tung von Kno­ten und Kan­ten wech­selt je nach An­wen­dungs­feld und muss immer wie­der aufs Neue her­aus­ge­ar­bei­tet wer­den. Am Ende steht immer ein Graph, der eine sehr abs­trak­te Dar­stel­lung we­sent­li­cher In­for­ma­tio­nen dar­stellt:

Die Kno­ten re­prä­sen­tie­ren eine Menge gleich­ar­ti­ger, dis­kre­ter Ob­jek­te; jede der Kan­ten re­prä­sen­tiert eine Be­zie­hung zwi­schen je zwei Ob­jek­ten, die sie ver­bin­det. Sol­che Gra­phen sind also 2-stel­li­ge Re­la­tio­nen über der Kno­ten­men­ge. Un­ge­rich­te­te Gra­phen kön­nen dabei nur sym­me­tri­sche Be­zie­hun­gen und Re­la­tio­nen mo­del­lie­ren (wie "sind be­freun­det", "sind be­nach­bart". "sind ver­bun­den"), ge­rich­te­te Gra­phen mo­del­lie­ren asym­me­tri­sche Be­zie­hun­gen und Re­la­tio­nen (wie "ist ab­hän­gig von", "im­pli­ziert", "muss vor­her aus­ge­führt wer­den", "ist bes­ser als").

Ge­wich­te­te Gra­phen bzw. Kan­ten mit Zu­satz­in­for­ma­ti­on wer­den not­wen­dig, wenn wei­te­re In­for­ma­tio­nen über die Be­zie­hun­gen wich­tig sind: z.B. die Ent­fer­nung zwi­schen zwei Orten, die Lei­tungs­ka­pa­zi­tät von Rohr­lei­tun­gen oder das Über­gangs­sym­bol bei Au­to­ma­ten.

Das Ein­satz­ge­biet von Gra­phen ist da­durch be­schränkt, dass nur eine end­li­che An­zahl dis­kre­ter Ob­jek­te in Form von Kno­ten re­prä­sen­tiert wer­den kön­nen:

  • Es kön­nen also nicht un­end­li­che viele Kno­ten exis­tie­ren. Z.B. kön­nen für Um­gieß­rät­sel drei ver­schie­de­ne Füll­hö­hen in einem Gefäß als Kno­ten mo­del­liert wer­den, aber nicht be­lie­bi­ge Füll­hö­hen.
  • Die Be­zie­hun­gen in einem Graph be­ste­hen immer nur zwi­schen zwei Kno­ten11 : Man kann also nicht aus­drü­cken, dass drei Per­so­nen einen Freun­des­kreis bil­den, son­dern nur, dass je­weils zwei von ihnen un­ter­ein­an­der be­freun­det sind und alle drei eine Cli­que bil­den (d.h. einen voll­stän­di­gen Teil­graph). Ge­nau­so lässt sich ein Bus­sys­tem im Com­pu­ter, bei dem viele Ge­rä­te an eine Lei­tung an­ge­schlos­sen sind, nicht ab­bil­den, ohne zu­sätz­li­che „Ver­zwei­gungs­kno­ten“ ein­zu­füh­ren.

Diese Be­schrän­kun­gen sind der Preis für die Ein­fach­heit der Dar­stel­lung und die damit ver­bun­de­ne Zu­gäng­lich­keit der Al­go­rith­men.

An­wen­dungs­ge­biet: Matching-Pro­ble­me

Ein Graph kann ver­wen­det wer­den, um aus­zu­drü­cken, dass be­stimm­te Ob­jek­te zu­ein­an­der pas­sen. Dabei kann es sich um lau­ter gleich­ar­ti­ge Ob­jek­te han­deln, z.B. Kin­der, die an­ge­ben, neben wem sie im Bus sit­zen wol­len, oder auch um zwei Typen von Ob­jek­ten, z.B. Män­ner und Frau­en, die zu Tanz­paa­ren grup­piert wer­den sol­len. Im zwei­ten Fall ist der Graph dann auf jeden Fall bi­par­tit, da es keine Be­zie­hun­gen in­ner­halb einer Grup­pe von Ob­jek­ten geben kann (ja, es könn­ten auch Män­ner mit Män­nern und Frau­en mit Frau­en tan­zen...).

Ein Matching ist dann ein Teil­graph mit der Ei­gen­schaft, dass keine zwei Kan­ten einen ge­mein­sa­men Kno­ten haben, d.h. jedes Ob­jekt wird ma­xi­mal einem Matching-Paar zu­ge­ord­net.

Ty­pi­sche Fra­ge­stel­lun­gen sind dann:

  • Wie er­reicht man mög­lichst viele Paa­run­gen?
  • Ist es mög­lich, alle Ob­jek­te zu matchen (per­fek­tes Matching)?
  • Wenn der Graph ge­wich­tet ist (z.B. um an­zu­ge­ben, wie gerne sich zwei Per­so­nen mögen), kann man ver­su­chen, eine ma­xi­ma­le Be­wer­tung des Matching zu er­rei­chen.

An­wen­dungs­bei­spie­le:

  1. Pi­lo­ten sol­len auf Flug­zeu­ge ver­teilt wer­den, wobei jeder Pilot nur be­stimm­te Flug­zeu­ge flie­gen darf, da er nur für deren Typ eine Li­zenz hat.
  2. Am­pel­schal­tung: Es gibt ver­schie­de­ne Ver­kehrs­flüs­se an einer Kreu­zung (Rechts­ab­bie­ger, Fuß­gän­ger usw.). Man­che kön­nen die Kreu­zung gleich­zei­tig über­que­ren. Ge­sucht sind mög­lichst große Cli­quen, da diese gleich­zei­tig grün be­kom­men kön­nen.

Im Bil­dungs­plan:

Matching-Pro­ble­me kom­men im Bil­dungs­plan nicht vor.

An­wen­dungs­ge­biet: Un­ver­träg­lich­keits­gra­phen

Das ist im Prin­zip das Ge­gen­teil des Matching-Pro­blems. Hier drückt eine Kante des Graphs aus, dass zwei Ob­jek­te nicht zu­ein­an­der pas­sen: z.B. geben Schü­ler und Schü­le­rin­nen an, mit wem sie auf gar kei­nen Fall bei einer Klas­sen­fahrt in einem Zim­mer über­nach­ten wol­len. Man­che Pro­ble­me kann man ent­we­der als Matching-Graph oder als Un­ver­träg­lich­keits­graph dar­stel­len. Dar­aus er­ge­ben sich dann un­ter­schied­li­che Lö­sungs­an­sät­ze des Pro­blems.

Ty­pi­sche Fra­ge­stel­lun­gen sind dann:

  • Finde eine Auf­tei­lung in k Teil­grup­pen, so dass keine Un­ver­träg­lich­kei­ten auf­tre­ten.
  • Ist es mög­lich, die Kno­ten in k Teil­grup­pen auf­zu­tei­len, so dass in­ner­halb einer Teil­grup­pe keine Kante, also keine Un­ver­träg­lich­keit, exis­tiert? Dies be­deu­tet, dass der Graph k-par­tit ist.
  • Wie viele Teil­grup­pen wer­den min­des­tens be­nö­tigt, damit keine Un­ver­träg­lich­kei­ten auf­tre­ten?

An­wen­dungs­bei­spie­le:

  1. Kar­ten­fär­be­pro­blem: Eine Karte soll so ge­färbt wer­den, dass an­ein­an­der an­gren­zen­de Län­der nicht die glei­che Farbe haben.
  2. Fre­quenz­pro­blem: Die Fre­quen­zen von Sen­de­mas­ten mit teil­wei­se über­lap­pen­den Sen­de­be­rei­chen sol­len so ver­teilt wer­den, dass keine In­ter­fe­ren­zen auf­tre­ten.
  3. Fi­sche im Zoo: Mög­lichst viele Fisch­sor­ten sol­len in zehn Aqua­ri­en prä­sen­tiert wer­den, wobei es Fisch­ar­ten gibt, die nicht mit­ein­an­der un­ter­ge­bracht wer­den dür­fen.
  4. Am­pel­schal­tun­gen: Es gibt ver­schie­de­ne Ver­kehrs­flüs­se an einer Kreu­zung (Rechts­ab­bie­ger, Fuß­gän­ger usw.). Man­che schlie­ßen sich ge­gen­sei­tig aus Si­cher­heits­grün­den aus. Ge­sucht sind mög­lichst we­ni­ge Teil­grup­pen, die ver­träg­lich sind.
  5. Stun­den­pla­nung Ober­stu­fe: Wel­che Kurse kön­nen auf eine Schie­ne ge­legt wer­den?
  6. Su­do­ku: In jedem Feld soll eine Zahl ste­hen, die nicht schon in einem an­de­ren Feld der­sel­ben Zeile, Spal­te oder dem­sel­ben Block steht.

Im Bil­dungs­plan:

3.​3.​2.​2 Al­go­rith­men auf Da­ten­struk­tu­ren (12) "Stra­te­gi­en (zum Bei­spiel Gree­dy) zur Be­stim­mung von Nä­he­rungs­lö­sun­gen in po­ly­no­mi­el­ler Lauf­zeit be­schrei­ben und an ge­eig­ne­ten Pro­blem­stel­lun­gen (zum Bei­spiel 4-Far­ben-Pro­blem, Do­mi­na­ting Sets) von Hand durch­füh­ren".

An­wen­dungs­ge­biet: To­po­lo­gi­sche Sor­tie­rung

Bei vie­len Din­gen ist eine Sor­tie­rung be­züg­lich mess­ba­ren Grö­ßen ein­deu­tig mög­lich: z.B. Men­schen nach Ge­wicht, Städ­te nach Ein­woh­ner­zahl. Bei an­de­ren Din­gen ge­lingt dies nicht so ein­fach. Sol­len z.B. Ak­tio­nen in eine Rei­hen­fol­ge ge­bracht wer­den, bei denen nur bei ei­ni­gen Schrit­ten fest­ge­legt ist, dass sie vor an­de­ren Schrit­ten aus­ge­führt wer­den müs­sen, dann ist nicht von vorn­her­ein klar, ob eine Rei­hen­fol­ge exis­tiert. Die Be­zie­hun­gen zwi­schen den Schrit­ten kön­nen als ge­rich­te­ter Graph dar­ge­stellt wer­den.

Ty­pi­sche Fra­ge­stel­lun­gen:

  • Exis­tiert eine to­po­lo­gi­sche Sor­tie­rung, d.h. eine Rei­hen­fol­ge, so dass keine Ab­hän­gig­keit ver­letzt wird? Dies ist gleich­be­deu­tend mit der Frage, ob der Graph kei­nen Zy­klus hat.
  • Finde eine to­po­lo­gi­sche Sor­tie­rung. Diese ist nicht not­wen­dig ein­deu­tig.

An­wen­dungs­bei­spie­le:

  1. Das An­zie­hen von Klei­dungs­stü­cken legt ge­wis­se Rei­hen­fol­gen fest: z.B. Schu­he nach den So­cken, lässt aber doch viele Frei­hei­ten. Ge­sucht ist eine to­po­lo­gi­sche Sor­tie­rung.
  2. Ver­klem­mun­gen bei par­al­le­len Pro­zes­sen: Wenn die Pro­zes­se A, B, C usw. auf Res­sour­cen war­ten, die von an­de­ren Pro­zes­sen be­legt sind, kann es zu ge­gen­sei­ti­gen Blo­cka­den kom­men. Dies ist der Fall, wenn es keine to­po­lo­gi­sche Sor­tie­rung gibt.
  3. Er­stel­lung einer To-Do-Liste mit ge­gen­sei­ti­gen Ab­hän­gig­kei­ten.

Im Bil­dungs­plan:

3.​3.​1.​2 Da­ten­struk­tu­ren (5) "Be­grif­fe aus der Gra­phen­theo­rie (unter an­de­rem Kno­ten, Kan­ten, Kno­ten­grad, Kreis/Zy­klus) und Ei­gen­schaf­ten von Gra­phen (unter an­de­rem ge­rich­tet/un­ge­rich­tet, ge­wich­tet/un­ge­wich­tet, zy­klisch/azy­klisch) ver­wen­den".

An­wen­dungs­ge­biet: We­ge­pro­ble­me

Die Kan­ten des Graph be­schrei­ben hier die di­rek­te Ver­bin­dung von zwei "Orten" (durch eine Stra­ße, eine Brü­cke, eine Lei­tung usw.). Ein Weg über meh­re­re Kan­ten ver­bin­det auch Kno­ten, die nicht di­rekt be­nach­bart sind. Kan­ten­ge­wich­te kön­nen dabei Ent­fer­nun­gen oder Zeit­be­darf aus­drü­cken.

Ty­pi­sche Fra­ge­stel­lun­gen:

  • Finde einen mög­lichst kur­zen Weg von A nach B.
  • Finde einen mög­lichst kur­zen Weg, der an allen Kno­ten ver­bin­det (ohne einen dop­pelt zu be­su­chen).
  • Exis­tiert ein Weg, der jeden Kno­ten genau ein­mal be­sucht? (Ha­mil­ton­kreis)
  • Exis­tiert ein Kan­ten­zug, der jede Kante genau ein­mal be­nutzt? (Euler-Zug)
  • Mit wel­cher Wahr­schein­lich­keit ge­langt man zu wel­chem Kno­ten, wenn man sich zu­fäl­lig durch den Gra­phen be­wegt?
  • Wel­ches ist der längs­te Weg (kri­ti­scher Weg) durch einen ge­rich­te­ten Gra­phen?

An­wen­dungs­bei­spie­le

  1. Rou­ten­pla­nung bei einem Na­vi­ga­ti­ons­ge­rät. Dabei kann zwi­schen schnells­ter und kür­zes­ter Stre­cke ge­wech­selt wer­den.
  2. Haus vom Ni­ko­laus: Finde einen Kan­ten­zug, um es in einem Zug zu zeich­nen.
  3. Kö­nigs­ber­ger Brü­cken­pro­blem
  4. Bei der Pro­jekt­pla­nung kön­nen Kno­ten Zwi­schen­stu­fen dar­stel­len und ge­rich­te­te, ge­wich­te­te Kan­ten die be­nö­tig­te Zeit, um diese Stufe zu er­rei­chen. Da man­che Pro­zes­se auch par­al­lel ab­lau­fen kön­nen, er­gibt sich ein ver­zweig­ter Graph. Der kri­ti­sche Pfad legt die Dauer des ge­sam­ten Pro­jekts fest.
  5. Schal­tungs­elek­tro­nik: Jedes elek­tro­ni­sche Bau­teil hat eine ge­wis­se Ver­zö­ge­rung. Der kri­ti­sche Pfad in einer elek­tro­ni­schen Schal­tung gibt damit die mi­ni­ma­le Takt­zeit vor.

Im Bil­dungs­plan:

3.​3.​2.​2 Al­go­rith­men auf Da­ten­struk­tu­ren (10) "einen Al­go­rith­mus  [...] zur Lö­sung des Pro­blems des kür­zes­ten Pfa­des (zum Bei­spiel Di­jk­s­tra, Bell­man-Ford) be­schrei­ben und an Bei­spie­len von Hand durch­füh­ren".

An­wen­dungs­ge­biet: Ver­bin­dungs­pro­ble­me

Ähn­lich wie bei We­ge­pro­ble­men be­schreibt der Graph Orte und ihre di­rek­te Ver­bin­dun­gen. Man un­ter­sucht aber nicht Wege, d.h. Fol­gen von Kan­ten (ohne Ver­zwei­gung), son­dern in­ter­es­siert sich für den Zu­sam­men­hang eines Gra­phen. Es sol­len bei­spiels­wei­se je zwei be­lie­bi­ge Kno­ten un­ter­ein­an­der über min­des­tens einen Weg mit­ein­an­der ver­bun­den sein.

Ty­pi­sche Fra­ge­stel­lun­gen:

  • Finde eine Teil­men­ge der Kan­ten, die den Gra­phen zu einem zu­sam­men­hän­gen­den Graph ma­chen, und deren Ge­samt­ge­wicht mög­lichst klein ist. (Mi­ni­mal span­ning tree)
  • Ist der Graph noch zu­sam­men­hän­gend, wenn man eine Kante/Kno­ten ent­fernt? Dies ist wich­tig für Aus­fall­si­cher­heit.
  • Be­stim­me die ma­xi­ma­le "Durch­fluss­men­ge" durch einen ge­rich­te­ten, ge­wich­te­ten Gra­phen.

An­wen­dungs­bei­spie­le:

  1. In einer Stadt soll eine Stra­ße/eine Kreu­zung ge­sperrt wer­den. Sind dann trotz­dem noch alle Stra­ßen er­reich­bar?
  2. Eine Gas-/Was­ser­ver­sor­gung soll für eine Stadt ge­plant wer­den. Wie soll­ten die Lei­tun­gen ver­legt wer­den?
  3. In einer Groß­stadt wer­den zur Rush­hour ei­ni­ge Stra­ßen zu Ein­bahn­stra­ßen er­klärt. Sind trotz­dem noch alle Stra­ßen er­reich­bar?
  4. Pla­nung von Schiff­fahrts­rou­ten zwi­schen den In­seln einer In­sel­grup­pe.
  5. Ver­kehrs­pla­nung: Wie viele Autos kön­nen durch das Stra­ßen­netz ma­xi­mal pro Zeit­schritt von A nach B fah­ren, wenn alle Stra­ßen so gut wie mög­lich ge­nutzt wer­den? Das kann z.B. für die Pla­nung der An­fahrt­rou­ten bei Groß­ver­an­stal­tun­gen wich­tig sein.

Im Bil­dungs­plan:

3.​3.​2.​2 Al­go­rith­men auf Da­ten­struk­tu­ren (10) "einen Al­go­rith­mus (zum Bei­spiel Prim, Krus­kal) zur Be­stim­mung eines Mi­ni­mum Span­ning Tree [...] be­schrei­ben und an Bei­spie­len von Hand durch­füh­ren".

 

9 Schmitt G.N. (1993) Me­tho­de: Abs­trak­ti­on und Mo­dell­bil­dung. In: Ar­chi­tec­tu­ra et Ma­chi­na. View­eg+Teub­ner Ver­lag, https://​link.​sprin­ger.​com/​chap­ter/​10.​1007/​978-​3-​322-​83972-​5_​10 (Ab­ge­ru­fen 06.05.2020)

10 Gal­len­ba­cher, Jens (2008), Aben­teu­er In­for­ma­tik, Spek­trum Ver­lag

11 Es gibt auch so­ge­nann­te Hy­per­gra­phen, die mehr als zwei Kno­ten bei einer Kante zu­las­sen. Die sol­len hier aber nicht be­rück­sich­tigt wer­den.

 

Hin­ter­grund­in­for­ma­tio­nen: Her­un­ter­la­den [odt][990 KB]

 

Wei­ter zu Al­go­rith­men mit op­ti­ma­ler Lö­sung