一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

DFS深度優(yōu)先搜索python代碼

冬至子 ? 來源:行在交通 ? 作者:ai聊天機(jī)器人 ? 2022-10-12 10:50 ? 次閱讀

最近在寫分支定界求TSP的一個(gè)小項(xiàng)目,涉及到圖和樹的各種知識(shí),就淺淺的從無向圖的遍歷開始總結(jié)一下近期的學(xué)習(xí)工作,使用DFS的遞歸遍歷無向圖。

鄰接矩陣、鄰接表等都可以用來表示一張圖,這里使用鄰接表數(shù)組來表示,即以頂點(diǎn)為索引的列表數(shù)組,具體實(shí)現(xiàn)使用字典來創(chuàng)建鄰接表數(shù)組。

poYBAGNGKzGACJOcAAAxE4eKOeo310.png

深度優(yōu)先搜索DFS簡單地來說,就是在訪問其中一個(gè)頂點(diǎn)時(shí),將它標(biāo)記為已訪問,遞歸的訪問它所有沒有被標(biāo)記的相鄰頂點(diǎn)。

老習(xí)慣,上代碼。

poYBAGNGKzyAAuJ7AABb3wOjgys887.png

運(yùn)行看結(jié)果。

poYBAGNGK0yAHvgcAACSUbrIQFo956.png

淺淺的分析一下遞歸的過程

poYBAGNGK1yAai82AACYeBpPqJc420.png

dfs(0) ---dfs(1)---0已經(jīng)被標(biāo)記了,下一個(gè)dfs(3)---1已經(jīng)被標(biāo)記了,所以下一個(gè)dfs(2)---graph[2]里的0,3都被標(biāo)記了,回到graph[3],接著dfs(5)--3已經(jīng)被標(biāo)記了,所以dfs(6)---接下來就簡單了,dfs(4)。好像就結(jié)束了應(yīng)該是這樣吧。

到這里如果就結(jié)束的話,顯得敷衍,折騰了一下,實(shí)現(xiàn)了一個(gè)簡單有點(diǎn)笨的s-v的路徑構(gòu)建的功能,還是用上面的例子來說明,最后visited = [0,1,3,2,5,6,4],根據(jù)這個(gè)標(biāo)記順序,會(huì)有且僅有0-1,1-3,3-2,3-5,5-6,6-4被選中(別問為什么,這是我的規(guī)則)。

pYYBAGNGK26AaZN4AAD8oxmDK2k515.png

首先運(yùn)行前面的dfs,得到 visited = [0,1,3,2,5,6,4],根據(jù)這個(gè)標(biāo)記順序,會(huì)有且僅有0-1,1-3,3-2,3-5,5-6,6-4被選中(別問為什么,這是我的規(guī)則)??吹?和5行,將構(gòu)建u-v的路徑轉(zhuǎn)為構(gòu)建v-u的路徑。

會(huì)有人好奇為啥0到5的路徑為啥不是0-3-5這條,因?yàn)?-3沒有被標(biāo)記啊!至于為什么,這就是我的規(guī)則,別管(懂的自然會(huì)懂我的心路歷程,不懂就算,反正構(gòu)建路徑又不對(duì)成本、距離等做要求)。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4822

    瀏覽量

    85894
  • TSP
    TSP
    +關(guān)注

    關(guān)注

    1

    文章

    25

    瀏覽量

    17070
  • DFS
    DFS
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    9315
收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?

    是一種非常有用的編程語言,其語法易于閱讀,允許程序員使用比匯編、C或Java等語言更少的代碼行。Python編程語言最初實(shí)際上是作為Linux的腳本語言而開發(fā)的。Py
    的頭像 發(fā)表于 03-25 09:27 ?325次閱讀
    零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行<b class='flag-5'>Python</b>程序?

    創(chuàng)建了用于OpenVINO?推理的自定義C++和Python代碼,從C++代碼中獲得的結(jié)果與Python代碼不同是為什么?

    創(chuàng)建了用于OpenVINO?推理的自定義 C++ 和 Python* 代碼。 在兩個(gè)推理過程中使用相同的圖像和模型。 從 C++ 代碼中獲得的結(jié)果與 Python*
    發(fā)表于 03-06 06:22

    百度搜索與文心智能體平臺(tái)接入DeepSeek及文心大模型深度搜索

    近日,百度搜索與文心智能體平臺(tái)聯(lián)合宣布了一項(xiàng)重要更新:將全面接入DeepSeek及文心大模型最新的深度搜索功能。這一更新將為用戶和開發(fā)者帶來更加智能、高效的搜索和智能體創(chuàng)建體驗(yàn)。 據(jù)悉
    的頭像 發(fā)表于 02-17 09:14 ?457次閱讀

    使用Python實(shí)現(xiàn)xgboost教程

    裝: bash復(fù)制代碼conda install -c conda-forge xgboost 2. 導(dǎo)入必要的庫 在你的Python腳本或Jupyter Notebook中,導(dǎo)入必要的庫: python復(fù)制
    的頭像 發(fā)表于 01-19 11:21 ?994次閱讀

    使用Python進(jìn)行串口通信的案例

    python復(fù)制代碼 import serialimport time # 配置串口參數(shù)serial_port = '/dev/ttyUSB0' # 在Windows上可能是 'COM3' 或其他類
    的頭像 發(fā)表于 11-22 09:11 ?1071次閱讀

    對(duì)比Python與Java編程語言

    Python與Java都是目前非常流行的編程語言,它們各有其獨(dú)特的優(yōu)勢和適用場景。以下是對(duì)這兩種編程語言的對(duì)比: 一、語法和易用性 Python 語法簡潔,代碼更易讀,非常適合初學(xué)者。 動(dòng)態(tài)類型系統(tǒng)
    的頭像 發(fā)表于 11-15 09:31 ?824次閱讀

    如何用python控制usb2any?

    我想用python控制usb2any,在網(wǎng)上搜索后得到的關(guān)于usb2any的資料很少,是否有官方的usb2any函數(shù)庫?
    發(fā)表于 11-08 14:36

    使用Python進(jìn)行圖像處理

    下面是一個(gè)關(guān)于使用Python在幾行代碼中分析城市輪廓線的快速教程。
    的頭像 發(fā)表于 11-07 10:14 ?480次閱讀
    使用<b class='flag-5'>Python</b>進(jìn)行圖像處理

    dp接口的最新技術(shù)發(fā)展

    深度優(yōu)先搜索DFS)是一種基本的算法,用于遍歷或搜索樹或圖。它從一個(gè)頂點(diǎn)開始,盡可能深地搜索
    的頭像 發(fā)表于 10-30 13:52 ?458次閱讀

    如何用python控制usb2any?

    我想用python控制usb2any,在網(wǎng)上搜索后得到的關(guān)于usb2any的資料很少,是否有官方的usb2any函數(shù)庫?
    發(fā)表于 09-27 06:44

    pytorch和python的關(guān)系是什么

    ,PyTorch已經(jīng)成為了一個(gè)非常受歡迎的框架。本文將介紹PyTorch和Python之間的關(guān)系,以及它們在深度學(xué)習(xí)領(lǐng)域的應(yīng)用。 Python簡介 Python是一種高級(jí)、解釋型、通用
    的頭像 發(fā)表于 08-01 15:27 ?2963次閱讀

    Python在AI中的應(yīng)用實(shí)例

    Python在人工智能(AI)領(lǐng)域的應(yīng)用極為廣泛且深入,從基礎(chǔ)的數(shù)據(jù)處理、模型訓(xùn)練到高級(jí)的應(yīng)用部署,Python都扮演著至關(guān)重要的角色。以下將詳細(xì)探討Python在AI中的幾個(gè)關(guān)鍵應(yīng)用實(shí)例,包括機(jī)器學(xué)習(xí)、
    的頭像 發(fā)表于 07-19 17:16 ?2146次閱讀

    基于Python深度學(xué)習(xí)人臉識(shí)別方法

    基于Python深度學(xué)習(xí)人臉識(shí)別方法是一個(gè)涉及多個(gè)技術(shù)領(lǐng)域的復(fù)雜話題,包括計(jì)算機(jī)視覺、深度學(xué)習(xí)、以及圖像處理等。在這里,我將概述一個(gè)基本的流程,包括數(shù)據(jù)準(zhǔn)備、模型選擇、訓(xùn)練過程、以及測試與評(píng)估,并附上簡單的
    的頭像 發(fā)表于 07-14 11:52 ?1473次閱讀

    用pycharm進(jìn)行python爬蟲的步驟

    提供了許多有用的功能,如代碼自動(dòng)完成、調(diào)試和版本控制等。您可以從JetBrains的官方網(wǎng)站下載PyCharm,并根據(jù)您的需求選擇免費(fèi)社區(qū)版或付費(fèi)專業(yè)版。 創(chuàng)建一個(gè)新的Python項(xiàng)目 打開
    的頭像 發(fā)表于 07-11 10:11 ?1227次閱讀

    深度學(xué)習(xí)常用的Python

    深度學(xué)習(xí)作為人工智能的一個(gè)重要分支,通過模擬人類大腦中的神經(jīng)網(wǎng)絡(luò)來解決復(fù)雜問題。Python作為一種流行的編程語言,憑借其簡潔的語法和豐富的庫支持,成為了深度學(xué)習(xí)研究和應(yīng)用的首選工具。本文將深入探討
    的頭像 發(fā)表于 07-03 16:04 ?983次閱讀