====== アルゴリズム(Algorithm) ======  アルゴリズムとは、ある問題や計算の答えを導き出すために考えられた、効率的で一定な処理方法のことである。この処理方法に従ってコンピュータに計算を行わせることにより、妥当な処理速度/時間で正しく処理を行うことができる。\\ \\  また、一つの問題や計算を解くために、複数の処理方法が存在する場合がある。そのような場合は、アルゴリズムの特性をよく理解して、処理の目的や状況に応じて最適なものを選択しなければならない。\\ \\  アルゴリズムによっては、計算量や速度が明記されている場合がある。それについては、[[algorithm:big_o_notation|O-記法と計算量/速度の関係]]を参照のこと。\\ \\ ===== さまざまなアルゴリズム ===== 『C言語による最新アルゴリズム事典』などが大変参考になります🤤\\ [[https://oku.edu.mie-u.ac.jp/~okumura/algo/|奥村晴彦『C言語による最新アルゴリズム事典』技術評論社]]\\ ===== 進化計算 ===== * 遺伝的アルゴリズム(Genetic Algorithm ~ GA)\\ [[https://www.slideshare.net/kzokm/genetic-algorithm-41617242|遺伝的アルゴリズム (Genetic Algorithm)を始めよう!]]\\ [[https://qiita.com/Azunyan1111/items/975c67129d99de33dc21|【初心者向け】Re:ゼロから始める遺伝的アルゴリズム【人工知能】 - Qiita]] * 遺伝的プログラミング(Genetic Programming ~ GP)\\ [[https://qiita.com/overlap/items/e7f1077ef8239f454602|遺伝的プログラミングによる特徴量生成 - Qiita]]\\ [[http://darden.hatenablog.com/entry/2017/04/18/225459|DEAP - Pythonと機械学習]] ==== GA,GP用語 ==== * 遺伝子(Gene、Genetic ~ ジーン、ジェネティック) * 染色体(Chromosome ~ クロモソーム) * 個体(Individual ~ インディビジュアル) * 世代(Generation ~ ジェネレーション) * 集団、個体群(Population ~ ポピュレーション) * 交叉、交配(Crossover ~ クロスオーバ) * 突然変異(Mutation ~ ミューテーション) * 適応度(Fitness ~ フィットネス) ===== 探索 ===== * 幅優先探索(Breadth first search ~ BFS) * 深さ優先探索(depth-first search ~ DFS) * 分岐限定法(branch and cut method) * 山登り法(hill climbing ~ HC) * 最良優先探索(Best-first search) * ダイクストラ法(Dijkstra's algorithm) * A*アルゴリズム(A* search algorithm)