图论入门及基础概念(图篇)
目錄
- 目錄
- 圖篇
- 圖及其表示
- 圖論起源之七橋問題
- 圖論引入
- 圖的表示:
- 邊的表示和讀取:
- 點(diǎn)的表示和讀取:
- 圖論的基本概念
- 圖的表示引入
- 額。。。。 V3 = 。。。
- 圖的表示法
- 結(jié)語
圖篇
這是第一次寫博客,為了下載積分而來。
隨便寫些,各位大佬們多多指。
本次內(nèi)容是關(guān)于圖論的引入的,內(nèi)容如下:
- 矩陣引入
- 什么是圖?其如何表示?
- 圖論起源之七橋問題
- 圖論引入
- 圖論相關(guān)基本概念
- 圖論的表示引入
- 圖的表示法
- 矩陣引入
線性代數(shù)學(xué)的好的可以直接跳過,
當(dāng)然,看不懂的也可以直接跳過,這部分引入只是計(jì)為了后面計(jì)算上方便,
首先,用向量描述一個(gè)物體必須先劃分維度。
由于原子守恒原理我們知道氧原子和氫原子相互獨(dú)立,互不相關(guān)。
所以我們假設(shè)兩個(gè)維度空間為氧空間和氫空間
并且這兩個(gè)空間相互垂直(即線性無關(guān))
基于空間運(yùn)算的封閉性,我們得出該方程式存在的完備空間S為:
由于向量空間運(yùn)算的封閉性,我們有:
我們分別將氧氣和氫氣表示為該空間下的向量點(diǎn):
于是化學(xué)方程式配平便變成了向量之間的運(yùn)算:
由于氧氣和氫氣是該完備空間的基,即單質(zhì)。
容易運(yùn)算出答案:
圖及其表示
什么是 圖
要說什么是圖,這個(gè)有點(diǎn)不太好說,概念的東西太抽象,我還是直接說圖的表示吧,知道圖的表示形式,自然也就知道什么是圖了。
·圖的表示一般是分為兩塊的:
(1)某類具體事物
(2)這些事物之間的聯(lián)系
·而在圖論中,只存在兩種形態(tài):
①節(jié)點(diǎn)
②邊
這兩種形態(tài)通常這樣對(duì)應(yīng):
由于這種對(duì)應(yīng)關(guān)系,我們通常把這種關(guān)系轉(zhuǎn)化為矩陣描述,在前言中我們提到了一個(gè)例子:
在這里,具體事物即:
抽象事物(事物間的聯(lián)系)即其中的數(shù)量關(guān)系。
于是我們將化學(xué)方程改為如下矩陣式:
我們可以看到,矩陣分為兩塊:
PS: 所以說,用矩陣描述問題能使描述過程更加清晰化,建議采用。
圖論起源之七橋問題
七橋問題很經(jīng)典,我們都知道大數(shù)學(xué)家歐拉將其轉(zhuǎn)為一筆畫的問題,并順利解決,由此開創(chuàng)了圖論的先河。
用下圖舉個(gè)例子:
若將其看做畫線問題:
對(duì)于任意非起始點(diǎn),我們要一筆通過他只有如下兩種可能:
(1)兩條路線:
有進(jìn)必有出,必然是能夠一筆完成的
(2)四條路線:
由于通過外界一圈以后又回來所以對(duì)于這種偶數(shù)條線路,
可以等效為如下形式:
即將該節(jié)點(diǎn)視為另外一個(gè)圈起始點(diǎn),其中的閉圈必然能夠由一筆畫完成,由于該圈可以獨(dú)立出去,我們將該圈等效為不存在,便將偶數(shù)邊節(jié)點(diǎn)等效為如下一進(jìn)一出的兩條邊節(jié)點(diǎn):
三條路線:
三條線路相對(duì)復(fù)雜,但它的進(jìn)出也只有如下兩種可能形式:
同樣,我們運(yùn)用等效原理將其等效為如下形式:
我們將其中的閉圈化簡去掉,即等效為:
所以,該節(jié)點(diǎn)必然是一筆畫的起點(diǎn)(右圖形式)或者終點(diǎn)(左圖形式)
所以,我們得出了如下的基本結(jié)論:
①擁有偶數(shù)邊的節(jié)點(diǎn)
可以等效為只有一進(jìn)一出兩條邊的點(diǎn)。
即該點(diǎn)等效為過程點(diǎn)。
②擁有奇數(shù)邊的節(jié)點(diǎn)
可以等效為要么進(jìn),要么出的單邊的節(jié)點(diǎn)。
即該點(diǎn)等效為起始點(diǎn)。
唧唧歪歪了這么多,我們還是回到七橋問題吧:
那么問題來了:
問:該圖能否由一筆畫完成,并說明理由。
首先我給出答案不能,理由是:
A、C、D、B節(jié)點(diǎn)均為奇數(shù)邊
故等效為4個(gè)起始點(diǎn),而一個(gè)一筆畫的圖最多只能有兩個(gè)起始點(diǎn)。
PS:若要求一筆畫的終點(diǎn)和起點(diǎn)重合,則圖節(jié)點(diǎn)中必然全為偶數(shù)邊,這就是十分顯然的了。
圖論引入
圖論,顧名思義,必然是關(guān)于圖的理論咯
由于圖的表示分為兩塊:
①節(jié)點(diǎn)
②邊
我們不妨假設(shè)對(duì)于圖 :
①節(jié)點(diǎn)集 記為:
,
② 邊集 記為:
那么問題來了:
我們?cè)撊绾稳ケ硎酒渲械哪硞€(gè)節(jié)點(diǎn)或邊呢?
PS:馬克思說:“人的本質(zhì)不是單個(gè)人所固有的抽象物,在其現(xiàn)實(shí)性上,它是一切社會(huì)關(guān)系的總和。”(《馬克思恩格斯選集》第2版第1卷第60頁)
附即興打油詞一首:
《如果說》—妖米
如果說人類是一個(gè)集合,那么某個(gè)人便由他的社會(huì)關(guān)系總和來定義。
如果說節(jié)點(diǎn)集是一個(gè)集合,那么某個(gè)節(jié)點(diǎn)便由他的邊的總和來定義。
如果說邊集是一個(gè)集合,那么某條邊便由他連接的點(diǎn)的總和來定義。
2018-9-4 —— 23:12
圖的表示:
對(duì)于任意某條邊,以邊e1為例:
由于任意邊節(jié)點(diǎn)只有兩個(gè),我們不妨記為
對(duì)于任意某個(gè)節(jié)點(diǎn),分別以v3,v4為例:
對(duì)于v3,我們記為:
對(duì)于v4,我們記為:
但是,這么記雖然沒錯(cuò),但是我們想能不能用一種統(tǒng)一的格式去表示,將其任意點(diǎn)化為統(tǒng)一的標(biāo)準(zhǔn)格式
于是,我們靈光一閃想了一個(gè)辦法 :
還記得前面提到的原子守恒那邊的完備空間吧
事實(shí)上,由于我們約定俗成,比如說第一行就表示v1,第二行就表示v2,所以我們完全可以將如上形式化為如下:
即以邏輯值來代表是否存在連接。
事實(shí)上,由于標(biāo)準(zhǔn)化的約定,我們可以將如上形式整理成表格:
| V1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 |
| V2 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
| V3 | 0 | 1 | 1 | 1 | 1 | 1 | 0 |
| V4 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
邊的表示和讀取:
點(diǎn)的表示和讀取:
由于如上表格中,既有包含所有點(diǎn)的表示,由包含所有邊的表示,所以那個(gè)表格便是一個(gè)圖。
通常我們不寫表格,主要原因麻煩,我們通常直接寫為矩陣:
圖論的基本概念
1、有向圖
顧名思義,就是有方向的圖唄。
2、無向圖
就是沒有有方向的圖唄,也可以叫雙向圖。像前面的例子,七橋問題都是無向圖。
3、有限圖
就是節(jié)點(diǎn)和邊都有限的圖唄。
4、簡單圖
就是沒有環(huán)和多重邊的圖,
因?yàn)榄h(huán)獨(dú)立且封閉,可產(chǎn)生自由變量,導(dǎo)致問題變復(fù)雜。多重邊可分解為 邊+環(huán)。
反例:
5、完全圖
就是任意兩個(gè)點(diǎn)都有一條邊相連的圖。
P s:有一種結(jié)構(gòu)叫拓?fù)?/p>6、二分圖
可以把頂點(diǎn)集分成兩組,并且同組頂點(diǎn)不相鄰的圖。如:
7、子圖與母圖
如果原圖叫母圖,那么從其中摳一份下來,那就叫它的子圖。
8、頂點(diǎn)v的度:
就是頂點(diǎn)的邊數(shù)(環(huán)算兩條邊)。
由于每條邊都連接兩個(gè)頂點(diǎn),所以一個(gè)圖的頂點(diǎn)度之和必然是邊的兩倍。
即:
任意圖必然可由N個(gè)1筆畫完成,而每一筆在圖中產(chǎn)生的奇頂點(diǎn)數(shù)要么2個(gè),要么0個(gè),所以任意圖的奇頂點(diǎn)數(shù)必然是偶數(shù)個(gè),這是很顯然的。
9、 途徑
兩個(gè)頂點(diǎn)之間的通路我們稱為途徑。
若是途徑中沒有重復(fù)的頂點(diǎn),我們稱為路。
如果沒有重復(fù)的邊,我們稱為跡。
10、邊與弧
為了區(qū)分邊是否有方向,通常
有方向的叫弧,沒方向的叫邊。
圖的表示引入
前面我們以七橋問題(無向圖)講了圖的表示:
| V1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 |
| V2 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
| V3 | 0 | 1 | 1 | 1 | 1 | 1 | 0 |
| V4 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
那么問題來了,用這種方式表示有向圖該怎么表示?
對(duì)于一個(gè)圖,有兩個(gè)要素:
1、具體要素
2、具體要素間的聯(lián)系
由于具體要素(頂點(diǎn)集)肯定沒法變:
①節(jié)點(diǎn)集 記為:
②弧集 記為:
我們嘗試另外一種表示:
我們不再用連接的邊來定義節(jié)點(diǎn),而用鄰接節(jié)點(diǎn)來定義節(jié)點(diǎn)。如:
以下圖為例:
(可達(dá)的通路)的記為1。
額。。。。 V3 = 。。。
我們還是以下圖為例吧:
剛才你們什么都沒看見:
其中(可達(dá)的通路)的記為1。
于是我們整理成矩陣表格:
| V1 | 0 | 1 | 1 | 0 |
| V2 | 0 | 0 | 1 | 0 |
| V3 | 0 | 0 | 0 | 1 |
| V4 | 1 | 0 | 0 | 0 |
我們做如下約定:
于是,該矩陣定義了頂點(diǎn)之間的聯(lián)系。
即表示出了弧集。
我們發(fā)現(xiàn),這種矩陣定義的方式,既可以表示有向圖,又可以表示無向圖,而且貌似還比原來的表示方法更節(jié)省空間。
但是這種方法的缺點(diǎn)很明顯就是,當(dāng)出現(xiàn)多重邊時(shí)無法表示,反正你們剛才什么都沒看到就對(duì)了。
圖的表示法
這種用鄰接節(jié)點(diǎn)定義其他節(jié)點(diǎn)的方法:
我們不妨叫做鄰接矩陣法:
而那種用邊將兩個(gè)頂點(diǎn)關(guān)聯(lián)起來的方法,
我們不妨叫關(guān)聯(lián)矩陣法:
事實(shí)上,我們用關(guān)聯(lián)矩陣也可以表示有向圖,只要約定入節(jié)點(diǎn)為-1,出節(jié)點(diǎn)為1即可。當(dāng)然,還有其他方法可以表示圖,在計(jì)算機(jī)中,只要方便于運(yùn)算的表示方法都可以。
如,直接用弧集來表示圖:
即用二維數(shù)組的方法表示。
這種用弧集表來表示圖的方法,
我們不妨叫弧表表示法
當(dāng)然,還可以整理成有序的:
對(duì)了,忘了講一件事,
通常我們?cè)黾右恍?#xff0c;用來放弧的權(quán)重。對(duì)于鄰接矩陣和關(guān)聯(lián)矩陣,直接把例中的1改成相應(yīng)權(quán)重即可。
- 還有一種方法,就是用程序把圖畫出來。
熟悉C語言的童鞋可能知道指針和結(jié)構(gòu)體。
如果接觸過數(shù)據(jù)結(jié)構(gòu)可能知道鏈表。
如:
struct point
{
point * P;
int Data;
};
然后將數(shù)據(jù)掛在鏈表上。
這種方法提一下,懂的自然懂。
不懂也沒關(guān)系,反正我也不多講了。
結(jié)語
- 本次介紹了圖論相關(guān)基本概念以及相關(guān)表
- 感謝您的耐心閱讀
- 原創(chuàng)作品,如轉(zhuǎn)載,請(qǐng)注明出處
- 版權(quán)聲明:https://blog.csdn.net/qq_43133135/article/details/82390300
總結(jié)
以上是生活随笔為你收集整理的图论入门及基础概念(图篇)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【转】VS问题集合,不用也要收藏防止以后
- 下一篇: router-link