學習演算法需要了解學習的相關知識

2021-06-18 05:53:57 字數 2588 閱讀 8879

一、圖論 

路徑問題 

0/1邊權最短路徑 

bfs 

非負邊權最短路徑(dijkstra) 

可以用dijkstra解決問題的特徵 

負邊權最短路徑 

bellman-ford 

bellman-ford的yen-氏優化 

差分約束系統 

floyd 

廣義路徑問題 

傳遞閉包 

極小極大距離 / 極大極小距離 

euler path / tour 

圈套圈演算法 

混合圖的 euler path / tour 

hamilton path / tour 

特殊圖的hamilton path / tour 構造 

生成樹問題 

最小生成樹 

第k小生成樹 

最優比率生成樹 

0/1分數規劃 

度限制生成樹 

連通性問題 

強大的dfs演算法 

無向圖連通性 

割點 割邊 

二連通分支 

有向圖連通性 

強連通分支 

2-sat 

最小點基 

有向無環圖 

拓撲排序 

有向無環圖與動態規劃的關係 

二分圖匹配問題 

一般圖問題與二分圖問題的轉換思路 

最大匹配 

有向圖的最小路徑覆蓋 

0 / 1矩陣的最小覆蓋 

完備匹配 

最優匹配 

穩定婚姻 

網路流問題 

網路流模型的簡單特徵和與線性規劃的關係 

最大流最小割定理 

最大流問題 

有上下界的最大流問題 

迴圈流 

最小費用最大流 / 最大費用最大流 

弦圖的性質和判定 

二、組合數學

解決組合數學問題時常用的思想 

逼近 遞推 / 動態規劃 

概率問題 

polya定理 

三、計算幾何 / 解析幾何 

計算幾何的核心:叉積 / 面積 

解析幾何的主力:複數 

基本形 

點 直線,線段 

多邊形 

凸多邊形 / 凸包 

凸包演算法的引進,卷包裹法 

graham掃瞄法 

水平序的引進,共線凸包的補丁 

完美凸包演算法 

相關判定 

兩直線相交 

兩線段相交 

點在任意多邊形內的判定 

點在凸多邊形內的判定 

經典問題 

最小外接圓 

近似o(n)的最小外接圓演算法 

點集直徑 

旋轉卡殼,對踵點 

多邊形的三角剖分 

四、數學 / 數論 

最大公約數 

euclid演算法 

擴充套件的euclid演算法 

同餘方程 / 二元一次不定方程 

同餘方程組 

線性方程組 

高斯消元法 

解mod 2域上的線性方程組 

整係數方程組的精確解法 

矩陣 行列式的計算 

利用矩陣乘法快速計算遞推關係 

分數 分數樹 

連分數逼近 

數論計算 

求n的約數個數 

求phi(n) 

求約數和 

快速數論變換 

…… 素數問題 

概率判素演算法 

概率因子分解 

五、資料結構 

組織結構 

二叉堆 

左偏樹 

二項樹 

勝者樹 

跳躍表 

樣式圖示 

斜堆 reap 

統計結構 

樹狀陣列 

虛二叉樹 

線段樹 

矩形面積並 

圓形面積並 

關係結構 

hash表 

並查集 

路徑壓縮思想的應用 

stl中的資料結構 

vector 

deque 

set / map 

六、動態規劃 / 記憶化搜尋 

動態規劃和記憶化搜尋在思考方式上的區別 

最長子序列系列問題 

最長不下降子串行 

最長公共子串行 

最長公共不下降子串行 

一類np問題的動態規劃解法 

樹型動態規劃  

揹包問題  

動態規劃的優化 

四邊形不等式 

函式的凸凹性 

狀態設計 

規劃方向 

七、線性規劃 

八、常用思想 

二分          最小表示法 

串  kmp                              trie結構 

字尾樹/字尾陣列            lca/rmq 

有限狀態自動機理論 

排序 選擇/冒泡        快速排序        堆排序            歸併排序 

基數排序        拓撲排序        排序網路

關於機器學習需要了解的知識

當我們要學習人工智慧的時候,我們需要學習很多的知識,比如機器學習 深度學習等。一般來說,機器學習是人工智慧的核心知識,要想學好人工智慧就必須重視機器學習的知識。在這篇文章中我們給大家介紹一下關於機器學習需要了解的知識。當然,說到機器學習就必須要說一下機器學習演算法,在機器學習演算法中,尤其是神經網路...

關於機器學習需要了解的知識

當我們要學習人工智慧的時候,我們需要學習很多的知識,比如機器學習 深度學習等。一般來說,機器學習是人工智慧的核心知識,要想學好人工智慧就必須重視機器學習的知識。在這篇文章中我們給大家介紹一下關於機器學習需要了解的知識。當然,說到機器學習就必須要說一下機器學習演算法,在機器學習演算法中,尤其是神經網路...

學習程式設計需要了解什麼基礎知識

最近很多人都在問如何學習程式設計,學習程式設計需要什麼基礎?其實,學習程式設計第 一 要看你入門的基礎打的紮實不紮實,因為各種不同的程式語言實際上有很多東西都是相通的,如果我們把最基礎的知識學牢固了,那麼後面相對學起來就比較輕鬆了 第 二 學習程式設計除了你需要打好基礎外,有乙個良好的方法和對的思路...