単元一覧 › 大学数学 アルゴリズムと計算量

アルゴリズムと計算量の問題

難易度 1教科書の例題レベル大学数学 アルゴリズムと計算量

文字 からなる文字列(DNA 配列)に対して、次の 種類の操作を考える。

  • 削除: 文字を削除する(コスト )
  • 挿入: 好きな位置に 文字を挿入する(コスト )
  • 置換: 文字を別の 文字に置き換える(コスト )

操作をくり返して文字列 を文字列 に変換するとき、使った操作のコストの合計の最小値を、 から への重み付き編集距離という。

、 のとき、 から への重み付き編集距離を求めよ。

この問題で使うもの

この問題を解けるようになるまで(2 技能)
算数中学高校大学大学院

読み込み中…

右端(太枠)がこの問題で使う技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。

一覧で見る(前提が先)
  1. 動的計画法の基本(硬貨の最小枚数)
  2. 編集距離

ヒント

行き詰まったら、上から順に 1 つずつ開いてください。

ヒント 1

編集距離の動的計画法を使います。 を「 の先頭 文字を の先頭 文字に変換する最小コスト」として、 の表を埋めましょう。

ヒント 2

です。削除と挿入のコストが違うので、縦方向(削除)は 、横方向(挿入)は になることに注意。初期値は 、 です。

ヒント 3

行目()は 、 行目()は 、 行目()は になります。残りの 行目を計算しましょう。

答えと解説

答えを見る
結果を記録する(このブラウザにだけ保存されます):
解説を読む

、 とし、 を「 の先頭 文字を の先頭 文字に変換する最小コスト」と定める。求める値は である。

漸化式  なので

ここで は のとき 、 のとき (置換不要)である。

初期値 空文字列への変換は削除だけなので ()。空文字列からの変換は挿入だけなので ()。

表を埋める(上の行から、左から順に)

():
- ()
- ()
-

():
- ()
-
-

():
-
-
- ()

():
-
- ()
-

表にまとめると(行が 、列が )

よって編集距離は である。

(確認)たとえば の末尾の を削除して (コスト )、先頭 文字を 、 と置換して (コスト )とすれば、合計 で変換できる。

別解

を の先頭 文字から の先頭 文字への最小コストとする。漸化式は 。境界は 、。

行ごとの値(、)は次のとおり。
- : 0, 2, 4, 6
- (A): 1, 1, 2, 4
- (C): 2, 1, 2, 3
- (G): 3, 2, 2, 2
- (A): 4, 3, 2, 3

よって 。

検算: 最初の A を削除して CGA にし(コスト 1)、G→A、A→G と 2 回置換すると合計 3 で になる。コスト 2 以下は、長さを 3 にする削除が必須なので「削除 1 回+置換 1 回」に限られる。削除後の候補 CGA, AGA, ACA, ACG と CAG との不一致文字数はそれぞれ 2, 3, 3, 2 で、どれも置換 1 回では足りない。したがって 3 が最小。

この問題の確認

AI が作成した問題です。公開前に次の確認を行いました。確認の方法について

間違いを報告する

この問題の誤り・分かりにくい点・難易度や学年のずれを知らせる
どこについての報告ですか

報告の内容と問題の番号を保存します。名前やメールアドレスは保存しません。

関連する問題