検証グラフ系を用いて系列間物理コネクションを修復する

主系列参照チェーンが途切れている,というより,系列間物理コネクションが切れている系列の発生に対処するために,TOPOLOGY:MakeLinearEdgeListという一度は廃棄された関数を掘り起こして改造を試みているところだ.主系列への参照設定をTRIBEBOX::setMajor関数に集中し,この関数の中で物理コネクションの検査を行い,グラフには物理的に接続している場合にのみ枝を追加するようにした.

この結果,AFTERMARGSAMEGENEフェーズでは,TRIBEBOX #1589 先祖=#1361 衛門督(箒木)(0)[13] 優先=#1702 空蝉(1)→#1351 空蝉(0) →主系列#1567:一院とTRIBEBOX #1627 先祖=#1355 三位中将(0)[18] 優先=#1711 夕顔(2)→#1674 夕顔(1) →主系列#1567:一院の2つの系列の物理コネクションが切れていることが判明した.

このうち,後者は事後に接続を回復しているが,前者は最後まで切断状態が継続している.AFTERMARGSAMEGENEのループは多重カードが存在する間はループするようになっているが,STOPCARDSHIFTが立っているために一度で抜けてしまっている.まず,これを見ておこう.重婚同類循環が存在する場合にはSTOPCARDSHIFTを立てるようになっている.STOPCARDSHIFTが立っていると,ループを一度で抜けてしまうだけでなく,以下の2行も実行されないようになっている.

ShiftDirectAbsolute(topology->tajugraph1->complist);
AdjustTribeGeneration();

この2行を実行すると三位中将系列の切断は解消するので,暫定的にこの制限を緩和しておこう.これで次の段階に進む準備が整った.⇒TribeTreeGraphのノード数が4,枝数も4しかない.⇒現行では「物理コネクション」がなくても主系列を設定できるようなルーズな仕様になっているためだ.しかし,これは必要な措置なのでこれに従うしかない.グラフの枝を主系列設定時に生成するのではなく,検査時にまとめて処理することにしよう.作り直して検査用の新しい関数を作った.

TRIBEBOX::EstablishMajorTribeChainという関数は@20190204に廃止されているが,この名前をTRIBELISTの関数として復活させることにする.いや,グラフオブジェクトはTOPOLOGYの所有なのでやはりTOPOLOGYのメンバーとしておいた方が無難だ.⇒一応動作するようになったが,いろいろと問題がある.

image

上記の出力は望んでいたものだが,やや変則的な動作になっている.EstablishMajorTribeChainでは連結成分に分解された衛門督系列を連結するための解として伊予介+空蝉の結婚を見つけ出しているのだが,もう一度ループを通すと,今度は三位中将系列で非連結が発生するようになってしまう.上の図はループに戻らずにそのまま描画まで進んだ場合の図面だ.⇒余分な処理を外すことによって動作するようになった.

  1. AFTERMARGSAMEGENEのループで,ShiftDirectAbsoluteとAdjustTribeGenerationは一回だけ実行するようにした
  2. TRIBEBOX::AlternateTribeRealNodeを廃止した
  3. DONTSORTTRIBEを廃止した
  4. sameGeneCyclesでもSTOPCARDSHIFTをオンにしないようにした

コメントを残す

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

CAPTCHA