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

Re­prä­sen­ta­ti­on eines Gra­phen

Graph als Ma­trix: Ad­ja­zenz­ma­tri­zen

In die Ad­ja­zenz­ma­trix (bzw. Nach­bar­schafts­ma­trix) eines Gra­phen wird an jeder Stel­le ein­ge­tra­gen, ob eine Kante zwi­schen den Kno­ten­paa­ren exis­tiert. Bei n Kno­ten er­hält man eine qua­dra­ti­sche n x n -Ma­trix. In Mul­ti­gra­phen trägt man die An­zahl der Kan­ten zwi­schen den bei­den Kno­ten in der Ma­trix ein, bei ge­wich­te­ten Gra­phen das Ge­wicht der Kante. Daher muss bei die­sen ein be­stimm­ter Ein­trag in der Ma­trix kenn­zeich­nen, dass gar keine Kante exis­tiert (z.B. „-“).

Adjazenzmatrix eines gewichteten Graphen

Ad­ja­zenz­ma­trix eines ge­wich­te­ten Gra­phen ZPG In­for­ma­tik [CC BY-SA 4.0 DE], aus 1_gra­phen_hin­ter­grund.odt

Bei un­ge­rich­te­ten Gra­phen ist die Ad­ja­zenz­ma­trix spie­gel­sym­me­trisch zur Dia­go­na­len. Die Dia­go­na­le ist in der Regel un­be­setzt (es sei denn der Graph hat Schlau­fen). Bei ge­rich­te­ten Gra­phen wird nur dann eine „1“ ein­ge­tra­gen, wenn der Kno­ten, der durch die Zeile des Ein­trags fest­ge­legt ist, der Start­kno­ten ist und der Kno­ten, der durch die Spal­te fest­ge­legt wird, der Ziel­kno­ten ist.

Denk­bar wäre auch eine In­zi­denz­ma­trix (Kno­ten-Kan­ten-Ma­trix), bei der eine „1“ steht, wenn ein Kno­ten auf einer Kante liegt, an­dern­falls eine „0“. Bei n Kno­ten und m Kan­ten er­gibt sich so eine n x m – Ma­trix. Diese Re­prä­sen­ta­ti­on eines Gra­phen wird in der In­for­ma­tik aber so gut wie nicht ver­wen­det.

Adjazenz- und Inzidenztabelle zum Haus des Nikolaus und topologisch äquivalenten Graphen (Die Knoten sind mit A-E bezeichnet und die Kanten mit 1-8 durchnummeriert)

Ad­ja­zenz- und In­zi­denz­ta­bel­le zum Haus des Ni­ko­laus und to­po­lo­gisch äqui­va­len­ten Gra­phen (Die Kno­ten sind mit A-E be­zeich­net und die Kan­ten mit 1-8 durch­num­me­riert) ZPG In­for­ma­tik [CC BY-SA 4.0 DE], aus 1_gra­phen_hin­ter­grund.odt

Graph als Kan­ten­lis­te: Ad­ja­zenz­lis­te

Bei der Re­prä­sen­ta­ti­on des Gra­phen als Ad­ja­zenz­lis­te wird für jeden Kno­ten eine Liste der be­nach­bar­ten Kno­ten ge­spei­chert. Da­durch ist fest­ge­legt, wel­che Kno­ten durch Kan­ten ver­bun­den sind. Bei we­ni­gen Kan­ten pro Kno­ten wird die Da­ten­men­ge so er­heb­lich ge­rin­ger.

Bei ge­rich­te­ten Gra­phen wird ein Kno­ten nur dann als Nach­bar ein­ge­tra­gen, wenn er der Ziel­kno­ten der Kante ist. Bei un­ge­rich­te­ten Gra­phen wird bei bei­den Kno­ten der je­weils an­de­re Kno­ten der Kan­ten als Nach­bar ein­ge­tra­gen, da die Kante in bei­den Rich­tun­gen durch­lau­fen wer­den kann.

Bei ge­wich­te­ten Gra­phen muss zu­sätz­lich zu jedem Nach­barn noch das Ge­wicht der Kante dort­hin ge­spei­chert wer­den. Man er­hält also ein Tupel.

Adjazenzliste eines gewichteten Graphen

Ad­ja­zenz­lis­te eines ge­wich­te­ten Gra­phen ZPG In­for­ma­tik [CC BY-SA 4.0 DE], aus 1_gra­phen_hin­ter­grund.odt

Ver­gleich der Re­prä­sen­ta­ti­ons­for­men

So­wohl in der Form als Ad­ja­zenz­ma­trix, als auch als Ad­ja­zenz­lis­te sieht man sehr schön, wenn zwei Gra­phen iso­morph sind. Es wird deut­lich, dass es nicht dar­auf an­kommt, an wel­cher Stel­le ein Kno­ten ein­ge­zeich­net wird und wie die Kan­ten ver­lau­fen.

In der Pra­xis muss der Kno­ten aber an einer be­stimm­ten Stel­le dar­ge­stellt wer­den. Daher muss ein Pro­gramm zur Dar­stel­lung und Ana­ly­se von Gra­phen, die Po­si­ti­on jedes ein­zel­nen Kno­ten zu­sätz­lich spei­chern. Für die Dar­stel­lung der Kan­ten wählt man am ein­fachs­ten eine grad­li­ni­ge Ver­bin­dung zwi­schen den Kno­ten.

Das im Gra­phen­tes­ter ver­wen­de­te Da­tei­for­mat lässt so­wohl die Spei­che­rung als Ad­ja­zenz­lis­te als auch als Ad­ja­zenz­ma­trix zu. Da es sich um Text­da­tei­en han­delt, kann man sie mit einem be­lie­bi­gen Text­edi­tor un­ter­su­chen.

Um sich für eine Re­prä­sen­ta­ti­ons­form zu ent­schei­den, muss daher der spe­zi­el­le An­wen­dungs­fall be­trach­tet wer­den. Ad­ja­zenz­lis­ten er­lau­ben eine schnel­le­re Aus­füh­rung des Al­go­rith­mus, wenn alle Kan­ten/Nach­barn eines Kno­ten un­ter­sucht wer­den müs­sen, da diese nicht eine kom­plet­te Zeile der Ma­trix durch­su­chen müs­sen, um die Nach­barn zu er­mit­teln. Ad­ja­zenz­ma­tri­zen las­sen dafür eine schnel­le­re Über­prü­fung zu, ob eine Kante zu einem be­stimm­ten Kno­ten exis­tiert, da der Ein­trag an einer fest de­fi­nier­ten Stel­le steht. Bei der Ent­schei­dung muss au­ßer­dem be­rück­sich­tigt wer­den, ob es sich eher um dünne Gra­phen (also mit we­ni­gen Kan­ten) han­delt oder um na­he­zu voll­stän­di­ge Gra­phen. Nur bei dün­nen Gra­phen sind die Spei­cher­plat­zer­spar­nis und der be­schrie­be­ne Ge­schwin­dig­keits­vor­teil der Ad­ja­zenz­lis­te von Be­deu­tung. In der Pra­xis ver­wen­det man meist Ad­ja­zenz­lis­ten.8

Mög­li­che Be­rück­sich­ti­gung im Un­ter­richt

Der Bil­dungs­plan der Kurs­stu­fe schreibt vor, so­wohl Ad­ja­zenz­lis­ten als auch Ad­ja­zenz­ma­tri­zen zu be­han­deln. Der Bil­dungs­plan von IMP sieht das nicht vor. Gleich­wohl war die ZPG IMP der Mei­nung, dass es sich um einen wich­ti­gen As­pekt in Hin­blick auf die Ver­net­zung mit der In­for­ma­tik han­delt, und des­we­gen an­ge­spro­chen bzw. im Rah­men bin­nen­dif­fe­ren­zie­ren­der Pha­sen ein­ge­bracht wer­den soll­te. In der Ober­stu­fen kön­nen also Schü­ler schon Vor­kennt­nis­se mit­brin­gen (vgl. 04_au­g_a­b_graph_­ta­bel­le.odt aus den Ko­pier­vor­la­gen zu IMP Klas­se 8 Ma­the­ma­tik - Aus­sa­gen­lo­gik und Gra­phen).

 

8 Wi­ki­pe­dia, siehe Seite „Graph (Gra­phen­theo­rie)“, URL: https://​de.​wi­ki­pe­dia.​org/​wiki/​Graph_(Gra­phen­theo­rie)#De­fi­ni­tio­nen (ab­ge­ru­fen: 30.3.2018)

 

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

 

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