跳到主要内容

京都大学 情報学研究科 知能情報学専攻 2020年8月実施 情報学基礎 F2-1

Author

祭音Myyura

Description

削除、挿入、置換により数列 AA を数列 BB に変形する編集操作列を考える。AABB の各要素は以下の通りである。

A[1]=8,  A[2]=4,  A[3]=1,  A[4]=6A[1] = 8, \; A[2] = -4, \; A[3] = 1, \; A[4] = -6
B[1]=7,  B[2]=2,  B[3]=4,  B[4]=3B[1] = 7, \; B[2] = 2, \; B[3] = -4, \; B[4] = 3

任意の AA の要素 aaBB の要素 bb に対し、aa を削除するコストは a|a|, bb を挿入するコストは b|b|, aa から bb へ置換するコストは ab|a - b| とする。 なお AA の左端や右端にも挿入操作は可能である。 以下では2つの編集操作列において、編集操作の順序がのみ異なる場合は、同一の編集操作列とみなす。 例えば図1のように、AA の左端に 77 を挿入、8822 に置換、4-4 を削除、114-4 に置換、6-633 に置換する編集操作列のコストは 7+6+4+5+9=317 + 6 + 4 + 5 + 9 = 31 となるが、これは最小ではない。

図1: 編集操作列の例(順不同)
     8    -4    1    6
| | | | |
7 2 -4 3

A[i:j]A[i:j]AAii 番目から jj 番目の連続する要素で構成される数列とし、B[i:j]B[i:j] も同様に定義する。 M(m,n)M(m, n)A[1:m]A[1:m]B[1:n]B[1:n] に変形するコスト最小の編集操作列のコストとする。 動的計画法に基づくアルゴリズムに関する以下の設問に答えよ。

設問1 M(1,1),M(1,2),M(1,3),M(1,4)M(1, 1), M(1, 2), M(1, 3), M(1, 4) の値をそれぞれ求めよ。

設問2 M(2,1),M(3,1),M(4,1)M(2, 1), M(3, 1), M(4, 1) の値をそれぞれ求めよ。

設問3 M(4,4)M(4, 4)M(3,3),M(3,4),M(4,3)M(3, 3), M(3, 4), M(4, 3) を用いて表現せよ。

設問4 M(4,4)M(4, 4) の値を求めよ。

設問5 AABB に変形するコスト最小の編集操作列をすべて図1のように示せ。

题目描述

用删除、插入、替换把数列

A=(8,4,1,6)A=(8,-4,1,-6)

变为

B=(7,2,4,3).B=(7,2,-4,3).

删除 aa 的代价为 a|a|,插入 bb 的代价为 b|b|,将 aa 替换为 bb 的代价为 ab|a-b|;也可在 AA 两端插入。若两个编辑方案仅操作顺序不同,视为同一方案。题中示例方案总代价为 7+6+4+5+9=317+6+4+5+9=31,但并非最小。

A[i:j]A[i:j]B[i:j]B[i:j] 表示相应连续子序列,M(m,n)M(m,n) 为把 A[1:m]A[1:m] 变为 B[1:n]B[1:n] 的最小代价。基于动态规划回答:

  1. 分别求 M(1,1),M(1,2),M(1,3),M(1,4)M(1,1),M(1,2),M(1,3),M(1,4)
  2. 分别求 M(2,1),M(3,1),M(4,1)M(2,1),M(3,1),M(4,1)
  3. M(3,3),M(3,4),M(4,3)M(3,3),M(3,4),M(4,3) 表示 M(4,4)M(4,4)
  4. M(4,4)M(4,4)
  5. 按题中对齐图的形式,列出把 AA 变为 BB 的全部最小代价编辑方案。

考点

  • 最小编辑距离动态规划:以两个前缀长度为状态,在删除、插入、替换三种末步间取最小,并使用本题的数值相关代价。
  • 最优方案回溯:从 DP 表右下角沿所有达到最小值的前驱回溯,枚举不同对齐方式且去除仅操作顺序不同的重复方案。

Kai

M[i][j]=min{M[i1][j]+AiM[i][j1]+BjM[i1][j1]+AiBjM[i][j] = \min \begin{cases} M[i-1][j]+|A_{i}|\\ M[i][j-1]+|B_{j}|\\ M[i-1][j-1]+|A_{i}-B_{j}| \end{cases}

設問1

M(1,1)=1, M(1,2)=3, M(1,3)=7, M(1,4)=10M(1,1) = 1, \ M(1,2) = 3, \ M(1,3) = 7, \ M(1,4) = 10

設問2

M(2,1)=5, M(3,1)=6, M(4,1)=12M(2,1) = 5, \ M(3,1) = 6, \ M(4,1) = 12

設問3

M(4,4)=min{M(3,3)+9M(3,4)+6M(4,3)+3M(4,4) = \min \begin{cases} M(3,3) + 9\\ M(3,4) + 6\\ M(4,3) + 3 \end{cases}

設問4

M(4,4)=11M(4,4) = 11

設問5

 8        -4    1   -6
| | | | |
7 2 -4 3
 8   -4    1   -6   
| | | | |
7 2 -4 3