跳到主要内容

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

Author

Isidore, 祭音Myyura

Description

設問1

2つの文字列の編集コストは、文字の置換・削除・挿入により、一方を他方に変換するのに必要最小限の操作(置換・削除・挿入)の数で定義できる。 なお、2つの文字列の長さは同じとする。以下の問いに答えよ。

(1) 文字列 PARIS を PAIRS に編集するコストを答えよ。

設問2

すべての頂点の次数が1または3であり、辺に向きがない、根無し無順序木について考える。 次数が1の頂点を葉と呼ぶ。 すべての辺には正の値の長さが与えられ、葉 X,YX, Y 間の最短路の長さを d(X,Y)d(X, Y) とする。

(1) 3つの葉 A,B,CA, B, C を持ち、それ以外には葉を持たない木を考える。d(A,B)=12,d(A,C)=10,d(B,C)=6d(A, B)=12, d(A,C)=10, d(B, C)=6 を満たす木を重複なく全て導出して、各辺の長さとともに図示せよ。

(2) 4つの葉 A,B,C,DA, B, C, D を持ち、それ以外には葉を持たない木を考える。d(A,B)=12,d(A,C)=10,d(A,D)=7,d(B,C)=6,d(B,D)=9,d(C,D)=7d(A, B)=12, d(A,C)=10, d(A,D)=7, d(B, C)=6, d(B,D)=9, d(C,D)=7 を満たす木を重複なく全て導出して、各辺の長さとともに図示せよ。

题目描述

  1. 两个等长字符串的编辑成本定义为用字符替换、删除、插入把一个变成另一个所需的最少操作数。求将 PARIS 编辑为 PAIRS 的成本。
  2. 考虑无根、无序、无向树,每个顶点度数为 1 或 3;度 1 顶点称叶,每条边长度为正,叶 X,YX,Y 间最短路长度记为 d(X,Y)d(X,Y)
    1. 树恰有叶 A,B,CA,B,C,且 d(A,B)=12d(A,B)=12d(A,C)=10d(A,C)=10d(B,C)=6d(B,C)=6。无重复地求出所有满足条件的树,标出各边长度并画图。
    2. 树恰有叶 A,B,C,DA,B,C,D,且 d(A,B)=12d(A,B)=12d(A,C)=10d(A,C)=10d(A,D)=7d(A,D)=7d(B,C)=6d(B,C)=6d(B,D)=9d(B,D)=9d(C,D)=7d(C,D)=7。 无重复地求出所有满足条件的树,标出各边长度并画图。

考点

  • 最小编辑距离:在插入、删除、替换单位代价下求两个短字符串的最少操作数。
  • 树度量重构:利用叶间成对距离的和差恢复三叉树拓扑与枝长,并检查正长度及所有可能的叶分割。

Kai

設問1

The answer is 22.

A = ["P", "A", "R", "I", "S"]
B = ["P", "A", "I", "R", "S"]
cost = [[0]*(len(A)+1) for _ in range(len(B)+1)]

for i in range(len(A)):
cost[i+1][0] = cost[i][0]+1
for j in range(len(B)):
cost[0][j+1] = cost[0][j]+1

for i in range(len(A)):
for j in range(len(B)):
c = 0 if A[i] == B[j] else 1
cost[i+1][j+1] = min(cost[i][j+1]+1, cost[i+1][j]+1, cost[i][j]+c)

for i in range(len(cost)):
print(cost[i])

設問2

(1)

A,B,CA,B,C のみを持つ根無し無順序木を考える。

すべての頂点の次数は 11 または 33 なので,3 つの葉を持つ木は,中央に次数 33 の頂点 XX を 1 つ持つ形に限られる。

各辺の長さを

XA=x,XB=y,XC=zXA=x,\qquad XB=y,\qquad XC=z

とおく。

条件より,

x+y=12x+y=12
x+z=10x+z=10
y+z=6y+z=6

である。

これを解くと,

x=12+1062=8x=\frac{12+10-6}{2}=8
y=12+6102=4y=\frac{12+6-10}{2}=4
z=10+6122=2z=\frac{10+6-12}{2}=2

となる。

したがって,求める木は次の 1 つである。

      A
|
| 8
|
X
/ \
4 / \ 2
/ \
B C

(2)

4 つの葉 A,B,C,DA,B,C,D を持ち,それ以外には葉を持たない木を考える。

すべての頂点の次数が 11 または 33 であるから,内部頂点は 2 つである。したがって,木の形は葉の分割により

ABCD,ACBD,ADBCAB|CD,\qquad AC|BD,\qquad AD|BC

の 3 通りを調べればよい。

与えられた距離は

d(A,B)=12,d(A,C)=10,d(A,D)=7,d(A,B)=12,\quad d(A,C)=10,\quad d(A,D)=7,
d(B,C)=6,d(B,D)=9,d(C,D)=7d(B,C)=6,\quad d(B,D)=9,\quad d(C,D)=7

である。

場合 1:ABCDAB|CD

この場合,木の形は次のようになる。

A -- u -- v -- C
B --/ \-- D

辺の長さを

Au=a,Bu=b,uv=e,Cv=c,Dv=dAu=a,\quad Bu=b,\quad uv=e,\quad Cv=c,\quad Dv=d

とおく。

このとき,

d(A,C)d(A,D)=cdd(A,C)-d(A,D)=c-d

である。与えられた値を代入すると,

107=310-7=3

より,

cd=3c-d=3

である。

一方,

d(B,C)d(B,D)=cdd(B,C)-d(B,D)=c-d

でもあるが,

69=36-9=-3

より,

cd=3c-d=-3

となる。これは矛盾である。

したがって,この場合は不可能である。

場合 2:ACBDAC|BD

この場合,木の形は次のようになる。

A -- u -- v -- B
C --/ \-- D

辺の長さを

Au=a,Cu=c,uv=e,Bv=b,Dv=dAu=a,\quad Cu=c,\quad uv=e,\quad Bv=b,\quad Dv=d

とおく。

このとき,

d(A,B)d(A,D)=bdd(A,B)-d(A,D)=b-d

である。与えられた値を代入すると,

127=512-7=5

より,

bd=5b-d=5

である。

一方,

d(C,B)d(C,D)=bdd(C,B)-d(C,D)=b-d

でもあるが,

67=16-7=-1

より,

bd=1b-d=-1

となる。これは矛盾である。

したがって,この場合も不可能である。

場合 3:ADBCAD|BC

この場合,木の形は次のようになる。

A -- u -- v -- B
D --/ \-- C

辺の長さを

Au=a,Du=d,uv=e,Bv=b,Cv=cAu=a,\quad Du=d,\quad uv=e,\quad Bv=b,\quad Cv=c

とおく。

条件より,

a+d=d(A,D)=7a+d=d(A,D)=7
b+c=d(B,C)=6b+c=d(B,C)=6
a+e+b=d(A,B)=12a+e+b=d(A,B)=12
a+e+c=d(A,C)=10a+e+c=d(A,C)=10
d+e+b=d(D,B)=9d+e+b=d(D,B)=9
d+e+c=d(D,C)=7d+e+c=d(D,C)=7

である。

まず,

(a+e+b)(a+e+c)=1210(a+e+b)-(a+e+c)=12-10

より,

bc=2b-c=2

である。

また,

b+c=6b+c=6

なので,

b=4,c=2b=4,\qquad c=2

を得る。

次に,

a+e+b=12a+e+b=12

b=4b=4 を代入すると,

a+e=8a+e=8

である。

また,

d+e+b=9d+e+b=9

b=4b=4 を代入すると,

d+e=5d+e=5

である。

さらに,

a+d=7a+d=7

であるから,

(a+e)+(d+e)=8+5(a+e)+(d+e)=8+5

より,

a+d+2e=13a+d+2e=13

となる。

a+d=7a+d=7

なので,

7+2e=137+2e=13

より,

e=3e=3

である。

したがって,

a=8e=5a=8-e=5
d=5e=2d=5-e=2

となる。

よって,

a=5,d=2,e=3,b=4,c=2a=5,\quad d=2,\quad e=3,\quad b=4,\quad c=2

である。

したがって,求める木は次の 1 つである。

      A
|
| 5
|
u
/ \
2 / \ 3
/ \
D v
/ \
4 / \ 2
/ \
B C

すなわち,

Au=5,Du=2,uv=3,Bv=4,Cv=2\boxed{ Au=5,\quad Du=2,\quad uv=3,\quad Bv=4,\quad Cv=2 }

である。

木の形は ADBCAD|BC の分割に対応するものだけである。