最適化とは、特定の用途や環境に対して最適になるよう調整することである。
概要
単に「最適化」と言うと文脈に応じて幾つかの意味が考えられる。ここではその例を示す。
- ある目的関数の値を最大化または最小化すること(最適化問題)
- ソフトウェアを特定の用途または特定の環境ためだけに特化させて高速化すること
- 特定の語句で検索したときに特定のページが上位に表示されるよう内容を調整すること(SEO対策)
- ハードディスクドライブの断片化を再配置により改善すること(デフラグ)
最適化問題とは、ある関数(目的関数)(例えばf(x,y)=xy)とその変数の条件(例えばx>0,y>0,x+y<=10)が与えられている時に、その目的関数の値を最大化または最小化する変数の値を求める問題のことを最適化問題と呼ぶ。
ソフトウェアの最適化に関して言えば、ソフトウェアはある程度汎用的な目的に対して汎用的な環境で動くよう、工業製品で言うところのある程度の「遊び」が設けられている場合が多い。これに対して、速度向上を目的として排除しようとする試みがソフトウェアの最適化である。ソフトウェアの最適化には、コンパイラによって自動的に行われるものと、人の手によって手動で行われるものが有る。最適化によって無駄な処理が減りソフトウェアの動作速度が大きく向上する場合も有る。その一方で、特定の環境や条件で動かなくなってしまったり、新たなバグを埋め込んでしまったりする場合も考えられ、必ずしも最適化をすることが適切であるとも言い切れない。中には、動いているコードを(人の手では)最適化するな、という意見も有る。
関連動画
以下は何れもハードディスクドライブの最適化に関連する動画。
関連商品
関連項目
- 2
- 0pt