問題解決邏輯 深度和廣度誰應該優先?

2021-10-22 23:13:13 字數 1847 閱讀 6704

人類的本質不光是復讀機

那麼我們是否考慮過問題究竟應該如何解決,應該深度優先還是廣度優先?

一、麥肯錫問題分析解決七步法

麥肯錫問題分析解決七步法還是挺有名氣的,也被很多人奉為圭臬。那麼麥肯錫問題解決七步法的核心邏輯是什麼,我給大家畫個思維導圖一目了然。

麥肯錫問題分析解決七步法說白了就是:對客戶提出的問題形成乙個完整的問題分析、解決和呈現的方**方案。

上述問題交給你你會怎麼處理?你不再是乙個螺絲釘的角色而是乙個掌握全域性的關鍵人員,你要給出乙個完整有效的解決方案。

是不是有點迷糊和不知所措了?我們來用圖說話對麥肯錫核心問題解決邏輯做乙個剖析,分三個階段:

第一階段:問題和依據雜亂無章

第二階段:問題和依據進行整合

第三階段:進一步歸納演繹

是不是一目了然?各個解決方案模組通過整合和聯動最終完成大目標的解決,這就是麥肯錫問題分析解決七步法的核心邏輯。

二、深度和廣度誰應該優先?

假定我們已經掌握了麥肯錫問題分析解決七步法要義,我們接下來還會遇到乙個問題:解決問題,深度和廣度誰應該優先?

學過數學的我們都知道,問題的解決思路不止一種,應對生活或者工作中的問題我們第一反應也是根據已有的經驗積累假設出最優解決方法,當然這個最優解並不一定準確,然後對最優解逐步驗證並最終確認問題是否解決,如果最終不能夠解決問題,則往往還需要選擇新的假設並繼續驗證。

那麼問題就來了,解決問題的效率最關鍵的在於能否第一次就準確找出最可能解決問題的假設,即根據經驗得出最優假設的能力往往是最關鍵的,一旦找準了道路,其他驗證只是工作量問題。

這麼說你可能不明白,我們還用圖說話:

如上圖,如果最終答案是在n點,如果是解決問題的思路是深度優先,那麼找到n點需要幾步?

這種解決問題的方法有乙個很大的弊端,就是當你面對問題發現同時有幾個可行的方案的時候,你如何選擇路徑?隨機選擇碰運氣嗎?隨機選擇這本身就不是乙個好的選擇因為隨機選擇也就意味著潛在的全部遍歷。

這時候我們就可以考慮另外一種問題解決的思路了,即廣度搜尋。

再回過頭來看圖,假設b/c/d三步解決問題的概率是一樣的,每一步又可能都涉及到3-5個驗證步驟,那麼我們可以優先對b/c/d逐一驗證。第一步驗證完成後我們可以根據掌握的資訊進一步評估最可能的解決方案是哪個,然後再進一步對最可能方案展開深度遍歷。

如果是解決問題的思路是廣度優先,那麼找到n點需要幾步?:

廣度優先本身是和概率結合的方法,當多個解決方案看起來相差無幾適用廣度優先的解決思路。

或許我們很少思考我們解決問題背後的邏輯是什麼,但這直接影響到我們平時解決問題的效率問題,因此當我們面對乙個問題的時候,兩種方法相結合才是解決問題方法的最佳思路。

聚焦技術與人文,分享乾貨,共同成長!

Python 深度學習 問題解決

本人學習中,持續更新各種問題 1.建議先檢視一下python2和python3的區別,參考別人的部落格 eclipse jee luna r win32 x86 64 python 安裝教程 直接預設路徑的話就是傻瓜無腦安裝了,就是最後執行下cmd命令 python就好了 eclipse 離線pyd...

遞迴的深度問題解決例子

1 2 將陣列轉化成樹結構 array to tree 3 param array 資料來源 4 param options 欄位名配置項5 6function arraytotree 7 array 8 options 9 建立盒子輔助本輪children合併去重 12 let root pid ...

亂碼問題解決和路徑問題

在web程式設計之前,可以先對機器進行設定 亂碼的問題產生的原因有很多,可能是客戶端和伺服器端編碼格式的不同,可能是生僻字。怎樣盡可能的解決亂碼問題呢?一般遇到亂碼是因為什麼呢?因為我們傳輸的是中文,而在不同的編碼表裡面,每個中文對應的碼不同,這時候就要統一。傳輸分為客戶端給伺服器傳送資料和伺服器端...