最適化とは、特定の用途や環境に対して最適になるよう調整することである。
単に「最適化」と言うと文脈に応じて幾つかの意味が考えられる。ここではその例を示す。
最適化問題とは、ある関数(目的関数)(例えばf(x,y)=xy)とその変数の条件(例えばx>0,y>0,x+y<=10)が与えられている時に、その目的関数の値を最大化または最小化する変数の値を求める問題のことを最適化問題と呼ぶ。
ソフトウェアの最適化に関して言えば、ソフトウェアはある程度汎用的な目的に対して汎用的な環境で動くよう、工業製品で言うところのある程度の「遊び」が設けられている場合が多い。これに対して、速度向上を目的として排除しようとする試みがソフトウェアの最適化である。ソフトウェアの最適化には、コンパイラによって自動的に行われるものと、人の手によって手動で行われるものが有る。最適化によって無駄な処理が減りソフトウェアの動作速度が大きく向上する場合も有る。その一方で、特定の環境や条件で動かなくなってしまったり、新たなバグを埋め込んでしまったりする場合も考えられ、必ずしも最適化をすることが適切であるとも言い切れない。中には、動いているコードを(人の手では)最適化するな、という意見も有る。
以下は何れもハードディスクドライブの最適化に関連する動画。
掲示板
10 ななしのよっしん
2016/09/03(土) 02:36:48 ID: c7cRg2PI4Y
設計が正しければ無理なく美しい実装となり、結果的に自然と最適なコードができる・・・というのが理想ではある。
現実にはCPUやプログラム言語は「バグって」おり、トロ臭い結果を出すので人間様が何とかしなきゃいけないという。
11 ななしのよっしん
2019/10/25(金) 12:39:35 ID: sC+QVJOMCJ
今流行りの人工知能の「学習」って最適化のことですよね 学習って呼ぶと機械がノート広げて勉強してるみたいで、一般の人とエンジニアとではかなり伝わってるイメージが違うように思われる
12 削除しました
削除しました ID: rJH2CWG562
削除しました
急上昇ワード改
最終更新:2024/10/11(金) 15:00
最終更新:2024/10/11(金) 15:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。