トライアングル関係BTWの導入で配偶者多重問題を解決する

午前0時起床,晴れ.朝食は薄切りトースト2枚,コロッケ小1個.現行のBTWの機構では解消できない「配偶者多重」を解決するために「三角BTW」という構成を導入する.これは現行の「対BTW」の左手本人となる資格を「左手枠配偶者」まで拡張するというものと言ってよい.BTWという仕組みは「同世代の結婚当事者は必ず接合できる」という原則を実現するための基礎であり,ゼルコバの木系図エンジンのもっとも主要なコンポーネントをなすものであるから,修正もかなり広範囲に及ぶことが予想される.

この修正は「左手枠配偶者を左手本人とするBTW拡張@20190130」というコンパイルオプションで実施することにする.NAMEBOX::DoublyBlessedOneは以下から呼び出されている.

  1. TRIBEBOX::BetweenTwoWomen TribeRelocaitonのステージ【5.2】重婚同類グラフ検定の事後処理を行なうで実行
  2. NAMEBOX::FindDoublyBlessedOne TOPOLOGY::ReduceMultiCard
  3. NAMEBOX::ConvertGhost2BTW GENEBOX::CheckInverseCycle
  4. PAIRLIST::VerifyPairBox GENELIST::CheckPairBoxCollision,
  5. TOPOLOGY::ReduceMultiCard TribeRelocationのステージ【7.9】仮ノード消去と両手に花を適用して多重カードを削減で実行

三角BTWは必ずしもこれらのすべてをカバーする必要はないと思われるので,ReduceMultiCard→FindDoublyBlessedOneでのみ対応することにしてみよう.YKはReduceMultiCardの中でIsVisibleCardでないという理由で弾かれている.IsVisibleCardは配偶者ノードを除外している.この関数はここでしか使われていない.このブロックではFindDoublyBlessedOneとEraseGhostNameを実行している.後者は本人ノードだけが対象だ.IsVisibleCardの代わりにIsValidNameBoxを使うようにした.この修正だけであとはまったく何も変更せずにBTWが成立した.

!実にすばらしい!多重は完全に解消した.

image

ただし,基準ノードの脇にはYKしか残っていない.基準ノードの3人の配偶者のうち,UYが外部に出てしまうのはある程度やむを得ないように思われる.というのはこのノードの外部婚は単親婚なのでこのノード以外には子ども枠を保持するノードがいないためだ.この点,YSは外部配偶者を持っているのだから,消去できてもよいはずなのだが親の存在が枷になっているようにも思われる.この図面は「合法的」であると考えられるので「基準ノードの子ども枠はBTW不可とする@20190129」を復活させてみよう.

image

これで基準ノードの配偶者はすべて近接位置に戻ってきたが,多重が2件発生した状態になっている.YKは多重にはなっていないが,BTW連結線が欠けている.この描線は未対応なのであとから見ることにしよう.多重カード2件のうち,有夫のYSのケースを追いかけてみる.要点を挙げてみよう.

  1. 基準ノードの配偶者の結婚は配偶者の配偶者の預かりとなっている
  2. 基準ノードの配偶者は親を持ち,そのポジションで配偶者の配偶者とBTW接合している このBTWは不可としなくてはならない
  3. 多重カードとは本人ポジションにあるカード数に他ならないから,配偶者の親の家にいる配偶者本人を消去しなくてはならない.
  4. 配偶者本人を消去できれば配偶者の配偶者ポジションカードの結婚は基準ノードの配偶者を左手本人とするBTWによって消去できる

項目2の禁止事項を実装してみよう.この項目は「基準ノードの配偶者は基準ノードの配偶者ポジションで左手本人となる場合を除き,BTWを組むことはできない」と翻訳される.⇒うまくいったようだ.

image

多重が1件残っているが,止むを得ないだろう.この配偶者は実家で単親婚を持っている.この子ども枠を保持するためには,このノードは実家に残るしかない.これを避けるためには単親婚を有夫婚に変えればよいというだけだから,回避策は存在する.多重を避けることを優先するか?ないし,明示的に外部婚配偶者氏名を記入することでそれを回避するかは,「当事者の自由」だ.多重の回避措置を取らない場合には最後の手段としてBTWを許可するということも考えられる.

この場合には結婚相手は遠いところに行ってしまうのだが,多重が発現するよりはマシかもしれない.例えば,渋沢栄一の場合で言うと,大内くにの場合がそうだ.くには2度結婚しているが相手の氏名が判明しているから,多分栄一から遠くないところに配置できると思う.従って,規則としては「もし,基準ノードの配偶者が外部に単親婚を持っている場合には左手本人となることを許す」とすべきだろう.⇒!できた!完装した!

これで「妻を寝取られた男の残念な家系図」問題は恒久的に解決したのではないかと思う.下図には多重は残っていない.N氏の三人の配偶者のうちの二人はボックス内に残り,もう一人は単親婚の子どもたちのために実家配置になっている.これでよいと思う.

image

試みにこの配偶者の単親婚に明示的な夫を与えてみよう.この母親には父親の異なる子どもが2人いる.そのうちの一人に父親を与えたところ,GetAlternativePrimeNodeで例外が発生した.→対処した.

どうもまだ,完全解には至っていないようだ.また,多重が発生してしまった.二人の子どもの父親が同じとすれば多重ゼロで解決する.母親が3つ結婚を持つ場合(うち一つは単親婚)に起きている多重が避けられないものであるのかどうか見ることにしよう.この多重は外部系列で起きている.

image

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA