日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图论入门及基础概念(图篇)

發(fā)布時(shí)間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图论入门及基础概念(图篇) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄

      • 目錄
  • 圖篇
      • 圖及其表示
    • 圖論起源之七橋問題
    • 圖論引入
      • 圖的表示:
    • 邊的表示和讀取:
    • 點(diǎn)的表示和讀取:
    • 圖論的基本概念
    • 圖的表示引入
    • 額。。。。 V3 = 。。。
    • 圖的表示法
  • 結(jié)語

圖篇

這是第一次寫博客,為了下載積分而來。
隨便寫些,各位大佬們多多指。

本次內(nèi)容是關(guān)于圖論的引入的,內(nèi)容如下:

  • 矩陣引入
  • 什么是圖?其如何表示?
  • 圖論起源之七橋問題
  • 圖論引入
  • 圖論相關(guān)基本概念
  • 圖論的表示引入
  • 圖的表示法

  • 矩陣引入

線性代數(shù)學(xué)的好的可以直接跳過,
當(dāng)然,看不懂的也可以直接跳過,這部分引入只是計(jì)為了后面計(jì)算上方便,

矩陣可以用在生活的方方面面,出現(xiàn)在各個(gè)學(xué)科中, 例如,我們?nèi)绾斡镁仃?#xff08;向量)來描述化學(xué)反應(yīng)方程式:

首先,用向量描述一個(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)化的約定,我們可以將如上形式整理成表格:

節(jié)點(diǎn) \ 邊->e1e2e3e4e5e6e7
V11001001
V21110000
V30111110
V40000111

邊的表示和讀取:

點(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ū)分邊是否有方向,通常
有方向的叫弧,沒方向的叫邊。

圖的表示引入

前面我們以七橋問題(無向圖)講了圖的表示:


\e1e2e3e4e5e6e7
V11001001
V21110000
V30111110
V40000111

那么問題來了,用這種方式表示有向圖該怎么表示?

對(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。

于是我們整理成矩陣表格:

\ V1V2V3V4
V1
V20
V3
V40

我們做如下約定:


于是,該矩陣定義了頂點(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。