クイズ 「狼と山羊とキャベツ」 (関係と行列表現とその演算) 栗原正純 電気通信大学 情報通信工学科 (2007.6.4)(2007.12.4修正) 2015/9/30 1 男、狼、山羊、キャベツ 男 狼 山羊 キャベツ 2015/9/30 2 男、狼、山羊、キャベツ、船、川 船 川 2015/9/30 3 船に乗る組み合わせ 2015/9/30 4 食べ(食べられ)てしまう組み合わせ 男がいなくても安全 な組合せ 2015/9/30 5 2015/9/30 6 2015/9/30 7 問題 1/2 • 川の左岸から右岸へ、男が、他に1つしか乗 せられない船で、狼、山羊、キャベツを安全に 運ぶには、どうしたらよいかを考えよう。 • ただし、男が一緒にいないと、 「狼は山羊を食べてしまう」、 「山羊はキャベツを食べてしまう」。 2015/9/30 8 問題 2/2 • 問1.どのような順番で運べばよいか、具体 的な手順(方法)を示せ。 • 問2.少なくとも船を何回利用する必要が あるかを示せ。 すなわち、利用する最小回数を示せ。 • 問3.最小回数で実行できる手順は何通りあ るか。 また、そのすべての手順を示せ。 2015/9/30 9 M Man 男 W Wolf 狼 G Goat 山羊 C Cabbage キャベツ 2015/9/30 10 組合せ(状態)の列挙 左岸 0 1 2 3 W 1 1 1 1 G C 1 1 1 1 1 1 右岸 M 1 1 W G C 1 1 M 1 1 “1” いる “0” いない。“0”を省略。 各行には4個の1がたつ。 たとえば、 0: すべてが、左岸にいる状態。 1: 男のみが、右岸に渡った状態。 2: 男がキャベツをもって、右岸に渡った状態。 3: 2の状態から、男のみが、左岸に戻った状態。 2015/9/30 11 組合せ(状態)の列挙 左岸 右岸 W G C M 0 1 1 1 1 1 2 1 1 1 1 1 3 1 1 4 1 1 5 6 1 1 1 7 1 G C 1 1 1 1 9 1 1 10 11 1 1 1 1 1 1 1 1 1 1 1 1 13 1 1 1 1 1 1 1 1 1 12 M 1 1 8 14 15 2015/9/30 W 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 12 安全性が確保される状態 左岸 右岸 W G C M 0 1 1 1 1 1 2 1 1 1 1 1 3 1 1 4 1 1 5 6 1 1 1 7 1 G C 1 1 1 1 9 1 1 10 11 1 1 1 1 1 1 1 1 1 1 1 1 13 1 1 1 1 W 1 1 G C 1 1 1 1 1 M 1 1 1 1 1 12 M 1 1 8 14 15 2015/9/30 W 安全でない組合せ 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 13 可能な状態推移 W G C M 0 1 1 1 1 1 2 1 1 1 1 1 3 1 1 4 1 1 5 6 1 1 1 7 1 1 9 1 1 10 11 1 1 1 1 1 1 1 1 1 1 1 12 1 13 1 1 1 0 5 1 1 2 7,11 1 3 4 5,7,13 1 5 6 0,4 1 7 8 11,13 1 9 1 10 11,15 11 2,8,10 1 1 1 M 1 1 1 2015/9/30 G C 1 8 14 15 W 1 1 1 1 1 1 1 1 1 1 1 1 2,4 12 1 1 1 13 1 14 15 10 4,8 14 関係 0 5 2 7,11 4 5,7,13 5 0,4 7 8 11,13 2,4 10 11,15 11 2,8,10 13 4,8 15 10 2015/9/30 左の情報から集合 X とその上の 関係 R を作る X 0,2,4,5,7,8,10,11,13,15 (0,5), (2,7), (2,11), (4,5), (4,7), (4,13), (5,0), (5,4), (7,2), (7,4), R (8,11), (8,13), (10,11), (10,15), (11,2), (11,8), (11,10), (13,4), (13,8), (15,10) 15 関係 R の行列表現 M 0 5 2 7,11 4 5,7,13 5 0,4 7 8 11,13 2,4 10 11,15 11 2,8,10 13 4,8 15 10 2015/9/30 0 2 4 5 7 8 10 11 13 15 0 0 4 0 5 1 7 0 8 0 10 0 11 0 13 0 15 0 0 2 M 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 16 n 関係 R と行列 M n Rn (a, b) | aから bへnステップで到達可能 1 2 3 4 5 6 7 8 M , M , M , M , M , M , M , M ,... 行列 M のベキ乗を順々に計算し、 (0,15)成分の P 値が最初に非ゼロとなった行列 M の指数部 P の値が、「求める最小利用回数」であり、非ゼロで ある (0,15)成分の値が「最小回数で実行できる手 順(方法)の数」に対応する。 2015/9/30 17 7 実際に計算してみると M のときに、初めて (0,15) 成分の値が非ゼロの値 2 になる。 従って、船を利用する最小回数は 7 回であり、 7 回で実行できる方法は 2 通りであることが 示せた。 具体的な方法は、次に示すグラフ表現が役に立 つ。 M 7 2015/9/30 0 2 4 5 7 8 10 11 13 15 0 1 3 12 24 23 1 0 16 23 2 18 状態遷移 0 5 2 7,11 4 5,7,13 5 0,4 7 8 11,13 0 5 13 2 8 11 4,8 15 10 2015/9/30 7 2,4 10 11,15 11 2,8,10 13 4 15 10 19 以上 2015/9/30 20
© Copyright 2024 ExpyDoc