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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

08-贪婪算法

發(fā)布時(shí)間:2023/12/4 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 08-贪婪算法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù)結(jié)構(gòu)和算法
基于《算法圖解》—Aditya Bhargava 和《數(shù)據(jù)結(jié)構(gòu)》—嚴(yán)蔚敏

第8章 貪婪算法

貪婪算法的優(yōu)點(diǎn): 簡(jiǎn)單易行,讓每一步都選擇局部最優(yōu)解,最終得到的就是全局最優(yōu)解。
貪婪算法是近似算法:在獲得精確解需要的時(shí)間太長(zhǎng)時(shí),可以使用近似算法。

判斷近似算法優(yōu)劣的標(biāo)準(zhǔn)如下:

  • 速度有多塊。
  • 得到的近似解與最優(yōu)解的接近程度。

8.1 集合覆蓋問(wèn)題
例如解決經(jīng)典的集合覆蓋問(wèn)題——選擇最優(yōu)的廣播電臺(tái):
假設(shè)辦了個(gè)廣播節(jié)目,要讓全美50個(gè)州的聽(tīng)眾都收聽(tīng)得到。為此,需要決定在哪些廣播臺(tái)播出。在每個(gè)廣播臺(tái)播出都需要支付費(fèi)用,因此,要盡可能少的廣播臺(tái)播出。

#首先創(chuàng)建一個(gè)列表,包含要覆蓋的州 states_needed = set(["mt", "wa", "id", "nv", "ut", "ca", "az"]) #傳入一個(gè)數(shù)組,它被轉(zhuǎn)換為集合。 #創(chuàng)建可供選擇的廣播臺(tái)清單,使用散列表表示。 station = {} station["kone"] = set(["id","nv","ut"]) station["ktwo"] = set(["wa","id","mt"]) station["kthree"] = set(["or","nv","ca"]) station["kfour"] = set(["nv","ut"]) station["kfive"] = set(["ca","az"]) #創(chuàng)建一個(gè)集合來(lái)存儲(chǔ)最終選擇的廣播臺(tái)。 final_station = set()#計(jì)算結(jié)果 while states_needed:best_staion = Nonestates_covered = set()for station, states in stations.items():covered = states_needed & states #計(jì)算交集if len(covered) > len(states_covered):best_station = stationstates_covered = coveredstates_needed -= states_coveredfinal_stations.add(best_station) print final_stations

8.2 NP完全問(wèn)題
Non-deterministic Polynomial的問(wèn)題,即多項(xiàng)式復(fù)雜程度的非確定性問(wèn)題。

判斷NP完全問(wèn)題的方法:

  • 元素較少時(shí)算法的運(yùn)行速度非常快,但隨著元素?cái)?shù)量的增加,速度會(huì)變得非常慢。
  • 涉及“所有組合”的問(wèn)題通常是NP完全問(wèn)題。
  • 不能將問(wèn)題分成小問(wèn)題,必須考慮各種可能的情況。
  • 如果問(wèn)題涉及序列且難以解決(如旅行商問(wèn)題中的城市序列)。
  • 如果問(wèn)題涉及集合且難以解決(如廣播臺(tái)集合)。
  • 如果問(wèn)題可轉(zhuǎn)換為集合覆蓋問(wèn)題或者旅行商問(wèn)題,就肯定是NP問(wèn)題。

8.3 小結(jié)

  • 貪婪算法尋找局部最優(yōu)解,企圖以這種方式來(lái)獲得全局最優(yōu)解。
  • 對(duì)于NP完全問(wèn)題,還沒(méi)有找到快速解決方案。
  • 面臨NP完全問(wèn)題時(shí),最佳的做法是適用近似算法。
  • 貪婪算法易于實(shí)現(xiàn)、運(yùn)行速度快,是不錯(cuò)的近似算法。

——持續(xù)修改完善中…

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的08-贪婪算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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