最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python基于回溯法子集樹(shù)模板解決m著色問(wèn)題示例

 更新時(shí)間:2017年09月07日 10:44:41   作者:羅兵  
這篇文章主要介紹了Python基于回溯法子集樹(shù)模板解決m著色問(wèn)題,簡(jiǎn)單描述了m著色問(wèn)題并結(jié)合實(shí)例形式分析了Python使用回溯法子集樹(shù)模板解決m著色問(wèn)題的具體步驟與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Python基于回溯法子集樹(shù)模板解決m著色問(wèn)題。分享給大家供大家參考,具體如下:

問(wèn)題

圖的m-著色判定問(wèn)題

給定無(wú)向連通圖G和m種不同的顏色。用這些顏色為圖G的各頂點(diǎn)著色,每個(gè)頂點(diǎn)著一種顏色,是否有一種著色法使G中任意相鄰的2個(gè)頂點(diǎn)著不同顏色?

圖的m-著色優(yōu)化問(wèn)題

若一個(gè)圖最少需要m種顏色才能使圖中任意相鄰的2個(gè)頂點(diǎn)著不同顏色,則稱這個(gè)數(shù)m為該圖的色數(shù)。求一個(gè)圖的最小色數(shù)m的問(wèn)題稱為m-著色優(yōu)化問(wèn)題。

分析

解的長(zhǎng)度是固定的,n。若x為本問(wèn)題的一個(gè)解,則x[i]表示第i個(gè)節(jié)點(diǎn)的涂色編號(hào)。

可以將m種顏色看作每個(gè)節(jié)點(diǎn)的狀態(tài)空間。每到一個(gè)節(jié)點(diǎn),遍歷所有顏色,剪枝,回溯。

不難看出,可以套用回溯法子集樹(shù)模板。

代碼

'''圖的m著色問(wèn)題'''
# 用鄰接表表示圖
n = 5 # 節(jié)點(diǎn)數(shù)
a,b,c,d,e = range(n) # 節(jié)點(diǎn)名稱
graph = [
  {b,c,d},
  {a,c,d,e},
  {a,b,d},
  {a,b,c,e},
  {b,d}
]
m = 4 # m種顏色
x = [0]*n # 一個(gè)解(n元數(shù)組,長(zhǎng)度固定)注意:解x的下標(biāo)就是a,b,c,d,e!!!
X = []   # 一組解
# 沖突檢測(cè)
def conflict(k):
  global n,graph,x
  # 找出第k個(gè)節(jié)點(diǎn)前面已經(jīng)涂色的鄰接節(jié)點(diǎn)
  nodes = [node for node in range(k) if node in graph[k]]
  if x[k] in [x[node] for node in nodes]: # 已經(jīng)有相鄰節(jié)點(diǎn)涂了這種顏色
    return True
  return False # 無(wú)沖突
# 圖的m著色(全部解)
def dfs(k): # 到達(dá)(解x的)第k個(gè)節(jié)點(diǎn)
  global n,m,graph,x,X
  if k == n: # 解的長(zhǎng)度超出
    print(x)
    #X.append(x[:])
  else:
    for color in range(m): # 遍歷節(jié)點(diǎn)k的可涂顏色編號(hào)(狀態(tài)空間),全都一樣
      x[k] = color
      if not conflict(k): # 剪枝
        dfs(k+1)
# 測(cè)試
dfs(a)  # 從節(jié)點(diǎn)a開(kāi)始

效果圖

更多關(guān)于Python相關(guān)內(nèi)容可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python Socket編程技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 教你編譯pjsip源碼的方法

    教你編譯pjsip源碼的方法

    通過(guò)本文教大家如何編譯pjsip源碼,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-10-10
  • python編寫一個(gè)GUI倒計(jì)時(shí)器

    python編寫一個(gè)GUI倒計(jì)時(shí)器

    這篇文章主要為大家詳細(xì)介紹了python編寫一個(gè)GUI倒計(jì)時(shí)器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • python3 sleep 延時(shí)秒 毫秒實(shí)例

    python3 sleep 延時(shí)秒 毫秒實(shí)例

    這篇文章主要介紹了python3 sleep 延時(shí)秒 毫秒實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • 淺談如何使用Python控制手機(jī)(一)

    淺談如何使用Python控制手機(jī)(一)

    這篇文章主要為大家介紹了如何使用Python控制手機(jī),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-11-11
  • Python 排序最長(zhǎng)英文單詞鏈(列表中前一個(gè)單詞末字母是下一個(gè)單詞的首字母)

    Python 排序最長(zhǎng)英文單詞鏈(列表中前一個(gè)單詞末字母是下一個(gè)單詞的首字母)

    這篇文章主要介紹了Python 排序最長(zhǎng)英文單詞鏈(列表中前一個(gè)單詞末字母是下一個(gè)單詞的首字母),列表中每個(gè)元素相當(dāng)于一個(gè)單詞,要實(shí)現(xiàn)列表中前一個(gè)單詞末字母是下一個(gè)單詞的首字母,并且這個(gè)鏈?zhǔn)亲铋L(zhǎng)的。感興趣的可以了解一下
    2020-12-12
  • Python學(xué)習(xí)筆記之Python的下載、腳本與交互模式、注釋

    Python學(xué)習(xí)筆記之Python的下載、腳本與交互模式、注釋

    這篇文章主要介紹了Python學(xué)習(xí)筆記之Python的下載、腳本與交互模式、注釋,本文從基礎(chǔ)開(kāi)始學(xué)習(xí)Python,需要的朋友可以參考下
    2023-03-03
  • 在Python中使用模塊的教程

    在Python中使用模塊的教程

    這篇文章主要介紹了在Python中使用模塊的教程,示例代碼基于Python2.x版本,需要的朋友可以參考下
    2015-04-04
  • 詳解python并發(fā)獲取snmp信息及性能測(cè)試

    詳解python并發(fā)獲取snmp信息及性能測(cè)試

    本篇文章主要介紹了詳解python并發(fā)獲取snmp信息及性能測(cè)試,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-03-03
  • Python實(shí)現(xiàn)自動(dòng)化對(duì)Word文檔添加或移除行號(hào)

    Python實(shí)現(xiàn)自動(dòng)化對(duì)Word文檔添加或移除行號(hào)

    Word文檔中的行號(hào)(行編號(hào))功能是對(duì)于精細(xì)化的文檔編輯以及解析非常有用的功能,添加行號(hào)能夠極大地提升文檔的可讀性和定位效率,本文將介紹如何使用Python來(lái)實(shí)現(xiàn)自動(dòng)化對(duì)Word文檔添加或移除行號(hào),為文檔處理工作帶來(lái)便捷,需要的朋友可以參考下
    2024-07-07
  • 使用PyCharm安裝pytest及requests的問(wèn)題

    使用PyCharm安裝pytest及requests的問(wèn)題

    這篇文章主要介紹了使用PyCharm安裝pytest及requests的相關(guān)資料,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07

最新評(píng)論

正阳县| 浪卡子县| 化州市| 华容县| 准格尔旗| 长寿区| 佛坪县| 乐安县| 万源市| 山丹县| 克什克腾旗| 海门市| 修文县| 麻栗坡县| 漾濞| 旌德县| 邹城市| 荆州市| 临安市| 绵竹市| 龙川县| 景宁| 北京市| 稷山县| 鄂托克旗| 元阳县| 甘泉县| 谢通门县| 娄底市| 五指山市| 淳化县| 石家庄市| 探索| 丽水市| 汤原县| 清流县| 平邑县| 襄城县| 汪清县| 丰台区| 渑池县|