時空間トレードオフとは?処理を速くするとメモリを多く使い

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

時空間トレードオフとは(全体像)

時空間トレードオフは、処理時間(時間)と使うメモリ(空間)が、たいてい引っぱり合う関係にあること。片方をよくすると、もう片方が悪くなりやすい。

身近な例が暗算と電卓。暗算は道具(メモリ)がいらないが時間がかかる。電卓は一瞬で答えが出る(速い)が、道具がいる。このように「速さ」と「道具(メモリ)」は引っぱり合う。

押さえたいのは、ふつうは両方を同時にはよくできないこと。だから設計では「今は速さを取るか、メモリ節約を取るか」を場面に応じて選ぶことになる。


詳しく:手法と判断基準だけ覚えれば戦える

ここが記事の心臓部。時空間トレードオフを使った代表的な手法を押さえよう。

時空間トレードオフの代表的な手法

手法やること効果
メモ化計算結果を覚えて使い回す時間↓・空間↑
ルックアップ表あらかじめ答えを表にしておく時間↓・空間↑
インプレース追加メモリを使わず元のデータを書き換える空間↓
圧縮データを小さくして保存する空間↓・解凍に時間↑

たとえばメモ化は、一度計算した答えを覚えておき、同じ計算が来たら使い回す。これで時間は大きく減るが、覚えるためのメモリは増える。逆にインプレースは、追加のメモリを使わず元のデータの上で書き換えるので、空間を節約できる。

では、どちらを優先するか。これは使える環境しだいだ。

どちらを優先するかの判断基準

環境優先することよく使う手法
メモリが潤沢(サーバーなど)速さ(時間)メモ化・ルックアップ表
メモリが少ない(組込み機器など)節約(空間)インプレース

つまり、メモリにゆとりがあれば速さを取り、メモリが厳しければ節約を取る。これが判断の基本、というわけだね。

わかりやすく言い換えると

要するに、時空間トレードオフは「速さとメモリは引っぱり合う」という話だ。

速くしたい … メモ化やルックアップ表で答えを覚える(メモリは増える)

メモリを節約したい … インプレースで元のデータを書き換える(時間は方式しだい)

どちらを選ぶか … メモリにゆとりがあるかどうかで決める

「あちらを立てればこちらが立たず」を、設計でうまく選ぶのがコツ。


試験のツボ

🔴 一番出る:時間と空間は引っぱり合う

①速くするとメモリが増えやすい

②メモリを節約すると時間がかかりやすい

🔴 次に出る:代表的な手法

①メモ化・ルックアップ表は時間↓・空間↑

②インプレースは空間↓

🟡 押さえると安定:どちらを優先するか

①メモリが潤沢なら速さ優先(メモ化など)

②メモリが少ないなら節約優先(インプレース)


よくある間違い

「時間もメモリも同時にいくらでも減らせる」→ ✗  ふつうは引っぱり合う。片方をよくすると、もう片方が悪くなりやすい。

「メモ化はどんなときも有利」→ ✗  メモリが足りない環境では、覚えるための場所が確保できず逆効果になることもある。

「インプレースは時間を必ず速くする手法」→ ✗  インプレースが節約するのは空間(メモリ)。時間はやり方しだい。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(トレードオフの本質)

📝 オリジナル問題 1 時空間トレードオフの本質

時空間トレードオフに関する次の記述のうち、正しいものはどれか。

  1. 時間とメモリはいつも一緒に減らせるので、どちらも気にせず最小にできるものだ
  2. 処理を速くするとメモリが増えやすく、メモリを節約すると時間がかかりやすい
  3. 時間とメモリにはなんの関係もなく、片方を変えてももう片方は決して動かない
  4. メモリを増やすほど処理は必ず遅くなるという、一方向だけの関係になっている
オーエスペン
オーエスペン 解答・解説

解答は 2 だよ。

時空間トレードオフは処理を速くするとメモリが増えやすく、メモリを節約すると時間がかかりやすいという引っぱり合いなんだ。暗算と電卓の関係だよ。

選択肢1の「両方減らせる」、選択肢3の「関係がない」、選択肢4の「メモリを増やすほど遅い」はどれも誤りだよ。

選択肢判定理由
1ふつうは引っぱり合う
2速さとメモリは相反する
3互いに関係がある
4メモリを使うと速くなる場面が多い

オリジナル問題2(メモ化)

📝 オリジナル問題 2 メモ化

メモ化に関する次の記述のうち、正しいものはどれか。

  1. メモ化は計算結果を覚えて使い回し、時間を減らすそのかわりにメモリが増える手法だ
  2. メモ化は計算結果をいっさい覚えず、毎回ゼロから計算をやり直すだけの手法とされる
  3. メモ化はメモリも時間も同時に減らせる、欠点のまったくない万能な手法のことである
  4. メモ化はメモリを節約するための手法で、時間はかえって長くかかるものとされている
オーエスペン
オーエスペン 解答・解説

解答は 1 だよ。

メモ化は計算結果を覚えて使い回し、時間を減らすかわりにメモリが増える手法なんだ。同じ計算をくり返さずに済むから速くなるよ。

選択肢2の「覚えない」、選択肢3の「欠点なし」、選択肢4の「メモリを節約する」はどれも誤りだよ。

選択肢判定理由
1時間↓のかわりに空間↑
2結果を覚えて使い回す
3メモリは増える
4メモリは増え、時間は減る

オリジナル問題3(判断基準)

📝 オリジナル問題 3 判断基準

時空間トレードオフの判断基準に関する次の記述のうち、正しいものはどれか。

  1. 環境にかかわらず、つねにメモリ節約だけを優先するのが正しい判断とされている
  2. 環境にかかわらず、つねに速さだけを優先するのが唯一の正しい判断であるとされる
  3. メモリが潤沢なら速さを優先、メモリが少ないなら節約を優先と、環境で使い分ける
  4. 判断の基準はいっさいなく、どの手法を選んでも結果はまったく同じになるものだ
オーエスペン
オーエスペン 解答・解説

解答は 3 だよ。

判断は環境しだいなんだ。メモリが潤沢なら速さを優先(メモ化など)、メモリが少ないなら節約を優先(インプレース)と使い分けるよ。

選択肢1や2の「つねに片方だけ」、選択肢4の「基準がない」はどれも誤りだよ。

選択肢判定理由
1つねに節約とは限らない
2つねに速さとは限らない
3環境で使い分ける
4判断の基準がある

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る