トレードオフ
出典: フリー百科事典『ウィキペディア(Wikipedia)』
トレードオフ(trade-off)とは、一方を追求すれば他方を犠牲にせざるを得ないという二律背反の状態・関係のことである。トレードオフのある状況では具体的な選択肢の長所と短所をすべて考慮したうえで決定を行うことが求められる。
目次 |
[編集] 日常生活での例
人間が経験するもっとも基本的なトレードオフは「時間をどう使うか」というものである。与えられた時間で例えば芝刈りをすることもできるが、より儲かることまたはより楽しいことのみに集中することもできる。「時は金なり」である。楽しいことのみに時間を使った場合はお金がなくなってしまう。
経済活動における古典的なトレードオフは時間、資金、品質のトリオである。一般的にはある状況で固定できるのは3つのうち2つのみであるとされている。限られた資金で品質を上げるには、大量の時間が必要となる。資金が自由であれば1969年以前に人類は月に到達し、帰還できたであろう。
これ以外にも「食欲と体型」、「重要だが困難な仕事と簡単だが些細な仕事」などトレードオフは日常の至る所に存在している。
[編集] 特定の領域でのトレードオフ
トレードオフは工学の分野で重要となる。例として電気工学では増幅回路にネガティブ・フィードバックを用いることで、利得との交換に周波数特性の向上や利得の安定性、雑音への耐性、非線形歪みの低減などの利点を得ることができる。
計算機科学ではトレードオフの利用が重要となる。例えば、キャッシュを利用することでキャッシュの格納領域を犠牲にしてCPUの処理時間を減らすことが可能になる。また、実行速度が重要でないのなら、開発速度を速くすることができる。時間や空間性能を最適化すると、開発サイクルが長く複雑になっていく。
戦略性のあるボードゲームにはほとんど常にトレードオフが現れる。(麻雀における和了確率と放銃回避確率、囲碁における地と厚み、将棋やチェスにおけるマテリアルアドバンテージとポジショナルアドバンテージ、モノポリーにおけるカラーグループの独占と被独占回避、など)
[編集] 時間と空間のトレードオフ
計算機科学において特に重要なのは、時間と空間のトレードオフである。メモリの使用を減らすとプログラムの実行が遅くなり、プログラムの実行を速くしようとするとメモリの使用が増える、という状況である。CPUサイクル・RAM容量・ディスク容量の相対コストが変化すると、適切なトレードオフ点も(多くは劇的に)変化する。多くの場合、トレードオフを利用することで計算量をも変えることができる。
有名な例はルックアップテーブルに関するアルゴリズムである。テーブル全体を保持するような実装ならば、計算時間は減らせるが必要なメモリは増えてしまう。また、必要なテーブルエントリのみ計算するようにすれば、計算時間は増えてしまうが必要なメモリは減る。これを利用して総当り攻撃を行うのがレインボーテーブルである。
時間と空間のトレードオフはデータの格納についての問題にも現れる。データを圧縮せずに格納すると、圧縮して格納する場合より容量を食うが(圧縮処理がない分)時間はかからない。どちらが実用に適しているかは問題ごとに異なる。
状況によってはコンパイラが高い時間性能のためのコードのインライン展開と空間性能のための実行時の関数呼び出しの両方を利用できる場合があり、プログラマは時間と空間のどちらの性能を重視するかを決定できる。
別の例としてウィキペディアで数式を表示することを考える。LaTeXのソースのみを格納しページが要求されるたびに画像をレンダリングするという方式は、時間との交換で空間を得ていることになる。ページが保存されたときに画像をレンダリングし格納するという方式ならば、空間との交換で時間を得ていることになる。
[編集] 関連項目
カテゴリ: 経済学 | 設計 | 経済関連のスタブ項目