大阪大学 情報科学研究科 情報工学 2018年度 離散構造
Author
祭音Myyura (co-authored with GPT 5.6 SOL)
Description
(1) リストと述語論理
空リストを []、先頭 H と残部 T のリストを [H∣T] とする。append(X,Y,Z) は X と Y の連結が Z、reverse(X,Y) は X の逆順が Y を表す。
- (1-1) 空リストと任意の X の連結が X であることを閉論理式で表せ。
- (1-2) append(X,Y,Z) なら、X,Z の先頭に同じ要素 A を加えても連結関係が成立することを閉論理式で表せ。
- (1-3) 空リストの逆順が空リストであることを表せ。
- (1-4) ∀A∀X∀Y∀Z((reverse(X,Y)∧append(Y,[A],Z))→reverse(α,Z)) の α を埋めよ。
- (1-5-1) 原子論理式 Pij,Qi,Rj からなる
(i=1⋀m∀x1⋯∀xh((j=1⋀niPij)→Qi))→∃x1⋯∃xhj=1⋀kRj
の否定を、含意を使わず ∀x1⋯∀xh(β∧γ) と表せ。ただし x1,…,xh は原子論理式に現れる変数、h≥1、n1,…,nm≥0 とする。
- (1-5-2) (1-1)~(1-4)の論理式と上の否定式を用い、導出原理により reverse([a∣[b]],W) の解の存在と W への代入を示し、探索過程を記せ。ただし a,b は要素を表す定数、W はリストを表す変数とする。
(2) 円盤の移動
大小の異なる n 枚の円盤を小さい順に 1,…,n とする。大きい円盤を小さい円盤の上には置けず、一度に最上部の1枚だけを移動する。Sk(i,j) は円盤 i,…,j がすべて棒 k にある状態である。
- (2-1) 棒3本で S1(1,n) から S3(1,n) へ移す最短回数 fn を漸化式から求めよ。また円盤 i が初めて移る行先を求めよ。
- (2-2) 1≤d≤n とする。棒4本で、円盤 1,…,d は棒2を、円盤 d+1,…,n は棒3を使えない。途中で S3(1,d) を通り、S1(1,n) から S4(1,n) へ移す最短回数 gn を n,d で表せ。さらに fn=gn となる d を求めよ。
Kai
(1)
(1-1)(1-2)(1-3)(1-4)∀X append([],X,X),∀A∀X∀Y∀Z(append(X,Y,Z)→append([A∣X],Y,[A∣Z])),reverse([],[]),α=[A∣X].
(1-5-1)
β=i=1⋀m(¬Pi1∨⋯∨¬Pini∨Qi),γ=¬R1∨⋯∨¬Rk.
束縛変数はあらかじめ必要に応じて改名する。ni=0 の節は Qi である。
(1-5-2) 否定した目標節から、逆順の再帰節、連結の再帰節、基底節の順に導出する。対応する目標の列は
reverse([a,b],W)⇒reverse([b],Y), append(Y,[a],W)⇒reverse([],Z), append(Z,[b],Y), append(Y,[a],W)⇒append([],[b],Y), append(Y,[a],W)⇒append([b],[a],W)⇒append([],[a],T),W=[b∣T]⇒□,T=[a].
よって W=[b,a]。
(2)
(2-1) 最大円盤を移す前後に残る n−1 枚の移動が必要なので
f0=0,fn=2fn−1+1,fn=2n−1.
円盤 n の初回の行先は棒3で、円盤番号が一つ小さくなるごとに棒2と棒3が入れ替わる。したがって円盤 i は n−i が偶数なら棒3、奇数なら棒2へ初めて移る。
(2-2-1) 小円盤群を棒1から棒3へ移し、大円盤群を棒1から棒4へ移し、小円盤群を棒3から棒4へ移す。各群は許された3本の棒を用いるため
gn=2fd+fn−d=2d+1+2n−d−3.
指定の中間状態の前後で小円盤群には各 fd 回、大円盤群には fn−d 回以上必要なので、この手順は最短である。
(2-2-2) x=2d とおくと
2x+2n/x=2n+2⟺(x−1)(2x−2n)=0.
1≤d≤n より x=1 なので、d=n−1 (n≥2)。n=1 には該当する d はない。