分治、贪心五大算法

1、分治
分治(即分而治之),把一个复杂的问题分成多个相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。
适用场景:二分搜索、归并排序、快速排序、大整数乘法、第K小元素、最近点对、快速傅里叶变换等。

2、动态规划
动态规划法也是把问题一层一层地分解为规模逐渐减小的同类型的子问题。动态规划通常用来求最优化问题。此类问题可以有很多可行解,我们求出的是一个最优解,可能存在多个最优解。(最优子结构、公共子问题)
与分治法的区别是:分治的子问题是相互独立的,动态规划最好解决有公共子问题的,子问题相关性很大。
使用场景:矩阵连乘、钢条切割、最长公共子序列、最优二叉搜索树、流水作业调度、0/1背包问题等。

维特比算法是动态规划在HMM中的应用,维特比算法用于解决HMM的预测或者叫解码问题。
viterbi有最优解是因为HMM每一步是条件独立的!既然后面的概率和前面的没关系,那前面选最大的概率就行了。
而beam search时后面的概率依赖于前面所有的词,相当于n-gram是满的,viterbi的n-gram是2

背包问题:
https://blog.csdn.net/wind__chaser/article/details/89457771
https://blog.csdn.net/qq_38410730/article/details/81667885

3、贪心
通过局部最优选择达到全局最优选择。贪心算法不一定总产生最优解,贪心算法是否产生优化解,需严格证明贪心算法产生最优解的条件:(最优子结构、贪心选择性)
贪心选择性:当一个问题的全局最优解可以通过局部最优解得到,称这个问题具有贪心选择性。
适用场景:活动选择问题、哈夫曼编码问题、最小生成树问题、单源最短路径问题等。

贪心算法:softmax之后取最大概率。与之对应的是,Beam Search算法
http://www.360doc.com/content/18/0618/09/17563728_763230413.shtml
https://blog.csdn.net/qq_16234613/article/details/83012046
https://www.zhihu.com/question/54356960

分治和动态规划的区别:
动态规划也是一种分治思想(比如其状态转移方程就是一种分治),但与分治算法不同的是,分治算法是把原问题分解为若干个子问题,
自顶向下求解子问题,合并子问题的解,从而得到原问题的解。动态规划也是把原始问题分解为若干个子问题,然后自底向上,
先求解最小的子问题,把结果存在表格中,在求解大的子问题时,直接从表格中查询小的子问题的解,避免重复计算,从而提高算法效率。

动态规划和分治法有些相像,都是把一个问题分成了很多子问题来求解,但是不同的是动态规划会记忆之前解决的子问题的结果,
避免了重复计算。判断一个问题是否能用动态规划求解,要看它是否能划分成合适的子问题,然后写出递推关系式。
动态规划得到的解一定是最优解。

  • 绠楁硶璁捐绛栫暐鏈夊摢浜
    绛旓細绠楁硶璁捐绛栫暐濡備笅锛1銆鍒嗘不html 鍒嗘不娉曠殑璁捐鎬濇兂鏄紝灏嗕竴涓毦浠ョ洿鎺ヨВ鍐崇殑澶ч棶棰橈紝鍒嗗壊鎴恔涓妯¤緝灏忕殑瀛愰棶棰橈紝杩欎簺瀛愰棶棰樼浉浜掔嫭绔嬶紝涓斾笌鍘熼棶棰樼浉鍚岋紝鑰屽悗鍚勪釜鍑荤牬锛屽垎鑰屾不涔嬨傜畻娉曘2銆佸姩鎬佽鍒抯pa 鍔ㄦ佽鍒掓硶涓庡垎娌绘硶鐩镐技锛屽叾鍩烘湰鎬濇兂涔熸槸灏嗗師闂鍒嗚В鎴愯嫢骞蹭釜瀛愰棶棰樸傝繖绉嶇姸鍐典笅鑻ョ敤鍒嗘不娉曚細瀵逛竴浜...
  • 鏈夋晥鐨绠楁硶璁捐
    绛旓細璐績娉曘侱ijkstra鐨勬渶鐭矾寰(鏃堕棿澶嶆潅搴(n2))锛汸rim姹傛渶灏忕敓鎴愭爲閭绘帴琛ㄥ瓨鍌ㄦ椂鏄疧(n+e),鍥綩(n2)锛涘叧閿矾寰勫強鍏抽敭娲诲姩鐨勬眰娉曘傚洖婧硶 鍒嗘敮闄愮晫娉 鍒嗘不娉曘傚垎鍓层佹眰瑙c佸悎骞躲備簩鍒嗘煡鎵俱佸綊骞舵帓搴忋佸揩閫熸帓搴忋傚姩鎬佽鍒掋侳loyd-Warshall绠楁硶姹傝В鍥句腑鎵鏈夌偣瀵逛箣闂存渶鐭矾寰勬椂闂村鏉傚害涓篛(n3)鍔ㄦ佽鍒掕В棰...
  • 绠瑕佽鏄庝粈涔堟槸璁$畻鎬濈淮?
    绛旓細璐績绠楁硶锛氳椽蹇冪畻娉曟槸涓绉嶅鎵炬渶浼樿В鐨绠楁硶锛瀹冨湪姣忎竴姝ラ夋嫨涓兘灏藉彲鑳藉湴瀵绘壘鏈浼樿В锛屼粠鑰屽笇鏈涙渶缁堝緱鍒板叏灞鏈浼樿В銆傝椽蹇冪畻娉曞彲浠ョ敤鏉ヨВ鍐宠澶氶棶棰橈紝渚嬪娲诲姩閫夋嫨绛夈傚洖婧硶锛氬洖婧硶鏄竴绉嶉氳繃鎺㈢储鎵鏈夊彲鑳界殑瑙f潵姹傝В闂鐨勭畻娉曪紝瀹冨彲浠ョ敤鏉ヨВ鍐宠澶氶棶棰橈紝渚嬪鍏殗鍚庨棶棰樸佸浘鐨勭潃鑹查棶棰樼瓑銆傚洖婧硶閫氳繃閫愭鏋勫缓...
  • 闂瑙e喅杩囩▼涓父鐢ㄧ殑绛栫暐鏈夊摢浜
    绛旓細4銆璐績绠楁硶 璐績绠楁硶鏄竴绉嶅湪姣忎竴姝ラ夋嫨涓兘閲囧彇褰撳墠鎯呭喌涓嬫渶濂芥垨鏈浼橈紙鍗虫渶鏈夊埄锛夌殑閫夋嫨锛屼粠鑰屽笇鏈涘鑷寸粨鏋滄槸鏈濂芥垨鏈浼樼殑绠楁硶銆傚畠鎬绘槸鍋氬嚭鍦ㄥ綋鍓嶇湅鏉ユ槸鏈濂界殑閫夋嫨锛屽嵆璐績閫夋嫨鎬ц川銆傝В鍐抽棶棰樼殑鎰忎箟 1銆佹彁楂樹釜浜鸿兘鍔 瑙e喅闂闇瑕佹垜浠濊冦佸垎鏋愩佸垱鏂板拰鎵ц锛岃繖涓杩囩▼鍙互閿荤偧鎴戜滑鐨勬濈淮鑳藉姏鍜岃В鍐...
  • 鍥捐В!涓鏂囧甫浣犵帺杞璐績绠楁硶!
    绛旓細璐績娉曢瑙f楠ゃ璐績绠楁硶鐨勮В棰樻楠わ紝鍏跺疄鍜鍒嗘不绠楁硶寰堝儚鐨勩傛垜鍦ㄤ箣鍓嶈鍒嗘不绠楁硶鐨勬椂鍊欒杩囧垎娌荤畻娉曠殑3涓楠わ細鍒掑垎锛圖ivide锛夛細灏嗗師闂鍒掑垎涓鸿妯¤緝灏忕殑瀛愰棶棰橈紝瀛愰棶棰樼浉浜掔嫭绔嬶紝涓庡師闂褰㈠紡鐩稿悓銆傛眰瑙o紙Conquer锛夛細閫掑綊鐨勬眰瑙e垝鍒嗕箣鍚庣殑瀛愰棶棰樸傚悎骞讹紙Combine锛夛細杩欎竴姝ラ潪蹇呴』銆傛湁浜涢棶棰樻秹鍙婂悎骞跺瓙...
  • 95% 鐨绠楁硶閮芥槸鍩轰簬杩 6 绉嶇畻娉曟濇兂
    绛旓細鎺ヤ笅鏉ユ槸鍒嗘不娉曪紝濡傚揩閫熸帓搴忎笌褰掑苟鎺掑簭銆傚垎瑙i棶棰樸佸瓙闂姹傝В涓庡悎骞舵槸鍏舵牳蹇冩楠わ紝姣斿浜屽垎鏌ユ壘鍜屽綊骞舵帓搴忕殑鏁堢巼婧愪簬姝ゃ備簩鍒嗘煡鎵鹃氳繃瀵规瘮涓棿鍏冪礌閫愭缂╁皬鑼冨洿锛岃屽垎娌荤瓥鐣ュ湪鍏朵粬鎺掑簭绠楁硶涓悓鏍疯捣鐫鍏抽敭浣滅敤銆璐績绠楁硶鍒欒拷姹傚眬閮ㄦ渶浼樹互姹傛暣浣撴湡鏈涙渶浼橈紝濡傞挒绁ㄩ夋嫨鍜岃矾寰勯棶棰樸傚苟闈炴墍鏈夐棶棰橀兘鑳芥壘鍒板叏灞鏈浼橈紝...
  • 楂樼鐨绠楁硶鍜岀瓥鐣,璋佽兘绉戞櫘涓,浠涔堟墠鍙珮绔畻娉曞拰绛栫暐?
    绛旓細1.鍒嗘不绠楁硶:鍒嗘不绠楁硶鐨勫熀鏈濇兂鏄皢涓涓妯′负N鐨勯棶棰樺垎瑙d负K涓妯¤緝灏忕殑瀛愰棶棰橈紝杩欎簺瀛愰棶棰樼浉浜掔嫭绔嬩笖涓庡師闂鎬ц川鐩稿悓銆傛眰鍑哄瓙闂鐨勮В锛屽氨鍙緱鍒板師闂鐨勮В銆2.璐績绠楁硶:鍦ㄥ闂姹傝В鏃讹紝鎬绘槸鍋氬嚭鍦ㄥ綋鍓嶇湅鏉ユ槸鏈濂界殑閫夋嫨銆備篃灏辨槸璇达紝涓嶄粠鏁翠綋鏈浼樹笂鍔犱互鑰冭檻锛屼粬鎵鍋氬嚭鐨勪粎鏄湪鏌愮鎰忎箟涓婄殑...
  • 鏁板绠楁硶濡備綍鍒嗙被?
    绛旓細鍒嗘不娉曪細灏嗛棶棰樺垎瑙d负鑻ュ共涓瓙闂锛岄掑綊鍦版眰瑙e瓙闂锛岀劧鍚庡皢瀛愰棶棰樼殑瑙e悎骞跺緱鍒板師闂鐨勮В锛屽褰掑苟鎺掑簭銆佸揩閫熷倕閲屽彾鍙樻崲绛夈傚姩鎬佽鍒掞細閫氳繃灏嗛棶棰樺垎瑙d负閲嶅彔鐨勫瓙闂锛屽苟灏嗗瓙闂鐨勮В瀛樺偍璧锋潵閬垮厤閲嶅璁$畻锛屼粠鑰岃В鍐抽棶棰橈紝濡傝儗鍖呴棶棰樸佹渶闀垮叕鍏卞瓙搴忓垪绛夈璐績绠楁硶锛氭瘡涓姝ラ兘閫夋嫨褰撳墠鏈浼樼殑閫夋嫨锛屼粠鑰屽笇鏈...
  • 甯哥敤鐨勮В鍐抽棶棰樼殑绛栫暐鏈夊摢浜?
    绛旓細2. 鍒嗘不娉曪細杩欑绛栫暐鏄皢涓涓鏉傜殑闂鍒嗚В鎴愯嫢骞蹭釜杈冨皬鐨勩佹洿瀹规槗瑙e喅鐨勫瓙闂锛岀劧鍚庡垎鍒В鍐宠繖浜涘瓙闂锛屾渶缁堝緱鍒板師闂鐨勮В鍐虫柟妗堛傚垎娌绘硶鍦ㄥ鐞嗗ぇ瑙勬ā銆佸鏉傞棶棰樻椂闈炲父鏈夋晥銆3. 鍔ㄦ佽鍒掞細杩欑绛栫暐閫氬父鐢ㄤ簬浼樺寲閫掑綊闂锛岄氳繃瀛樺偍宸茬粡瑙e喅杩囩殑瀛愰棶棰樼殑瑙o紝閬垮厤浜嗛噸澶嶈绠楋紝鎻愰珮浜嗘晥鐜囥4. 璐績绠楁硶锛...
  • 绠楁硶璁捐涓庡垎鏋愰噸鐐规荤粨
    绛旓細閫掑綊绠楁硶: 閫掑綊瀹氫箟闂鐨勮嚜鎴戣皟鐢紝閫氳繃閫掑綊瀹氫箟銆佺壒鐐瑰拰妯″瀷鎻ず鍏惰繍浣滆繃绋嬨備緥濡傦紝璁$畻闃朵箻鎴栨眽璇哄闂锛岄氳繃閫掑綊鏋勫缓瑙e喅鏂规銆鍒嗘不绛栫暐: 鍒嗚屾不涔嬶紝閫氳繃灏嗛棶棰樺垎瑙d负鏇村皬鐨勫瓙闂锛屽鍒嗘不娉曟楠や腑鐨勫瓙闂鍒掑垎鍜屽悎骞躲傚鎺掑簭绠楁硶涓殑褰掑苟鎺掑簭锛屽氨鏄氳繃閫掑綊鍦板垎鍓插拰鍚堝苟鏁扮粍鏉ュ疄鐜般璐績绛栫暐: 閫愭鏋勫缓...
  • 扩展阅读:八种开窍中药 ... 信佛后好多人得了精神病 ... 常用十大贪心算法 ... 国学为什么被列为诈骗 ... 南怀瑾说尽量不要接触易经 ... 一般背包问题的贪心算法 ... 如何激发初二孩子开窍 ... 没有业障人的相貌 ... 真正开悟的六种表现 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网