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

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

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

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

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

これらの操作をくり返して、文字列 を文字列 に変換する。かかるコストの合計の最小値(重み付き編集距離)を求めよ。

この問題で使うもの

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

読み込み中…

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

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

ヒント

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

ヒント 1

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

ヒント 2

漸化式は 。初期値は (削除のみ)、(挿入のみ)。

ヒント 3

1 行目()は 、2 行目()は となる。残りの 3 行目を計算しよう。

答えと解説

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

、 とし、 を「 の先頭 文字を の先頭 文字に変換する最小コスト」とする。 なので、漸化式は

である( は のとき 、 のとき )。

初期値: 空文字列にするには全部削除するので 、空文字列から作るには全部挿入するので 。

()
- (、不一致):
- (、一致):
- (、不一致):

()
- (、一致):
- (、不一致):
- (、不一致):

()
- (、不一致):
- (、不一致):
- (、一致):

よって求める最小コストは である。

実際、 の先頭に を挿入して (コスト )、 文字目の を削除して (コスト )とすれば、合計 で変換できる。なお、置換 回(、)ではコスト かかる。

別解

長さが等しい(どちらも3文字)ので、挿入と削除の回数は等しい。したがって、操作を1回以上使うなら、置換を1回以上使うか、削除と挿入を1回ずつ以上使うことになる。置換1回のコストは3、削除と挿入を1回ずつ使うコストは なので、どちらでもコストは3以上になる。X と Y は異なる文字列なので操作は必要であり、最小値は3以上である。

実際に3で達成できる。ACG から先頭の A を削除して CG にする(コスト2)。次に C と G の間に A を挿入して CAG にする(コスト1)。合計コストは3である。

検算として、動的計画法(編集距離の表)でも同じ値になる。挿入と削除だけを使う場合、最長共通部分列の長さは2(AG または CG)なので、コストは削除1回と挿入1回で になる。2文字とも置換する場合は で、これより大きい。

よって最小値は3である。

この問題の確認

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

間違いを報告する

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

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

関連する問題