許多現實世界的問題可以使用圖算法來解決。圖對於建模和解決現實問題很有用。例如,找到兩個城市之間的最少航班數量的問題可以使用圖來建模,其中頂點代表城市,邊代表兩個相鄰城市之間的航班,如下圖所示。求最少中轉航班數量的問題
兩個城市之間的問題簡化為尋找圖中兩個頂點之間的最短路徑。
圖問題的研究稱為圖論。圖論由 Leonhard Euler 於 1736 年創立,當時他引入圖術語來解決著名的柯尼斯堡七橋問題。普魯士柯尼斯堡市(現為俄羅斯加里寧格勒)被普雷格爾河分開。河上有兩個島嶼。城市和島嶼由七座橋樑連接,如下圖(a)所示。問題是,一個人可以步行,每座橋只過一次,然後回到起點嗎?歐拉證明這是不可能的。
為了建立證明,歐拉首先透過消除所有街道來抽象化柯尼斯堡城市地圖,產生如上圖(a)所示的草圖。接下來,他用一個點(稱為頂點或節點)替換每個陸塊,並用一條線(稱為邊)替換每個橋,如上圖(b)所示。這種具有頂點和邊的結構稱為圖。
看圖,我們問是否存在一條從任意頂點出發,恰好遍歷所有邊一次,並返回到起始頂點的路徑。歐拉證明,要存在這樣的路徑,每個頂點都必須有偶數條邊。因此,柯尼斯堡七橋問題無解。
圖問題通常使用演算法來解決。圖算法在各個領域都有許多應用,例如電腦科學、數學、生物學、工程、經濟學、遺傳學和社會科學。
圖由頂點和連接頂點的邊組成。本章不假設您具備任何圖論或離散數學的先驗知識。我們使用簡單明了的術語來定義圖表。
什麼是圖表?圖是一種數學結構,表示現實世界中實體之間的關係。例如,上圖代表城市之間的航班,下圖(b)代表陸地之間的橋樑。
圖由一組非空頂點(也稱為節點或點)和一組連接頂點的邊組成。為了方便起見,我們將圖形定義為 G = (V, E),其中 V 表示一組頂點,E 表示一組邊。例如下圖的V和E如下:
V = {“西雅圖”,“舊金山”,“洛杉磯”,
“丹佛”、“堪薩斯城”、“芝加哥”、“波士頓”、“紐約”,
「亞特蘭大」、「邁阿密」、「達拉斯」、「休士頓」};
E = {{"西雅圖", "舊金山"},{"西雅圖", "芝加哥"},
{“西雅圖”,“丹佛”},{“舊金山”,“丹佛”},
...
};
圖可以是有向的,也可以是無向的。在有向圖中,每條邊都有一個方向,這表示您可以透過該邊從一個頂點移動到另一個頂點。您可以使用有向圖來建模父/子關係,其中從頂點 A 到 B 的邊表示 A 是 B 的父項。下圖 (a) 顯示了一個有向圖。
在無向圖中,您可以在頂點之間雙向移動。下圖是無向圖。
邊可以是加權的,也可以是未加權的。例如,您可以為上圖中圖表中的每條邊分配一個權重,以表示兩個城市之間的飛行時間。
Dua bucu dalam graf dikatakanbersebelahanjika disambungkan dengan tepi yang sama. Begitu juga, dua tepi dikatakanbersebelahanjika disambungkan pada bucu yang sama. Tepi dalam graf yang bergabung dengan dua bucu dikatakan sebagaikejadiankepada kedua-dua bucu.darjahsesuatu bucu ialah bilangan tepi yang berdekatan dengannya.
Dua bucu dipanggiljiranjika bersebelahan. Begitu juga, dua tepi dipanggiljiranjika bersebelahan.
Agelungialah tepi yang memautkan satu bucu kepada dirinya sendiri. Jika dua bucu disambungkan oleh dua atau lebih tepi, tepi ini dipanggiltepi selari.graf ringkasialah graf yang tidak mempunyai sebarang gelung atau tepi selari. Dalamgraf lengkap, setiap dua pasang bucu disambungkan, seperti ditunjukkan dalam Rajah di bawah (b).
Sesuatu grafdisambungkanjika wujud laluan antara mana-mana dua bucu dalam graf. Asubgrafgraf G ialah graf yang set bucunya ialah subset bagi G dan set tepinya ialah subset bagi G. Contohnya, graf dalam Rajah di atas (c) ialah subgraf bagi graf dalam Rajah di atas (b).
Anggap bahawa graf bersambung dan tidak berarah.kitaranialah laluan tertutup yang bermula dari bucu dan berakhir pada bucu yang sama. Graf bersambung ialahpokokjika ia tidak mempunyai kitaran. Aspanning treegraf G ialah subgraf bersambung G dan subgraf ialah pokok yang mengandungi semua bucu dalam G.
以上是圖表和應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!