ZTシステム構成図7.ZELの軸線が通った

ZTシステム構成図7.ZELを#1 couplingで開いて,系統並び替え出口検査で垂直スプリットが検出される

従来論理のMakeHasseDiagramを廃止して,GetHasseDiagramと差し替えているが,TOPOLOGY::TestInevitableMultiZeroとVerticallyTightenHasseDiagramで実行していたSIMPLEGRAPH::sortComponentListを継承していなかった.GetHasseDiagramの実行後にSetAbsoluteGenerationとsortComponentListを実行することでスプリットは解消した.

同上サンプルで多重カード3件が残る.うち1件(COUPLING)は重婚クラスタ循環に起因する不可避の多重だが,残り2件(NLIST < LISTNODE,CID>とnodule)は同世代に多重カードが発生しているので,回避できなくてはならない.原因を調べてみよう.まず,noduleから見てゆこう.

noduleの仮ノードは(0)~(103)まである.ダミー枠を除いても17個ある.うち,(0)と(3)を除く15個はLDRだ.(0)は仮ノード消去の実ノードですべての親子連結線はここに集まっている.このノードはTOOYOUNGWIFE属性(TYW転換された抽出結婚枠とその本人)も持っている.(3)は軸線ノードだが,外部からは参照されていない.(16)は「LDRチェーン末尾に接続するTYW結婚枠を上位人名枠から参照」している.多重カードの削減はメインループのTOPOLOGY::ReduceMultiCardで実施しているが,実効性がない.これはおそらく(0)が結婚を持っているためだろう.

特に,単身婚の子どもを持っていることが効いているのではないか?血統軸線図の構築フェーズBUILDCENTERLINEは17で,GODOWNSTREAMの11より後に実行されるので軸線ノードが決定するときには結婚枠の割当はすでに決まってしまっている.しかし,軸線ノードの持つMOTHERLESSではない結婚枠をMargBoxTransferで移転したような技法を使えば,単身婚を軸線に移動させることはできるはずだ.⇒うまくいった.一発で2つとも多重が消えた!軸線も完全に通った.これが通れば,大概のサンプルはこなせるだろう…

image

上記サンプルを#8 linktableでソートして,TRIBELIST:MakePairListCleanで無限ループが発生した.MDB(2)→(1)とMDB(3)→(1)が競合している.どちらも危険対属性(CRITICALPAIR)でPAIRLIST::VerifyPairBoxで一方が別チャンネルに移動した後,RepairVerticalInverseで元のチャンネルに戻されている.⇒危険対の操作はCheckInverseCycleに任せて,CheckNormalizedSectionでは無視することにした.⇒解決.

▲同上サンプルを#15 selectedcardで開いて,系統並び替えの出口検査で水平スプリットが検出された.⇒確かにひどいスプリットが発生している.

image

障害が起きているのは始系列で,先祖ノードはCOUPLINGだ.⇒TRIBEBOX::CheckGeneSplitの検査は結婚枠単位だが,幅の広い結婚枠が3つあるため領域が被覆された状態になっている.BaseLink(0)の入っている枠は(-118, 12109),PDB(0)の枠は(676, 10024),pagesetup(0)は(-298, 9548)もある.この種の空洞はこの関数では検出できない.伸びた兄弟枠(ルーズな結婚枠)を詰めるのは水平セグメント検定の分担だ.何がそれを妨げているのだろう?⇒原因がTYW婚にあることは明らかだ.実際,TYW婚を完全禁止すれば問題なく描画できる.

image

TYW婚はシンメトリ婚と同様の「フロート婚」であり,どのような位置にも水平移動できるが,その状態を完全に捕捉するのは難しい.むしろ,水平セグメント検定の対象から除外してしまうということが考えられる.つまり,ほったらかしにするという方針だ.言い換えれば,既定の木構造の規制範囲外とする.逆に言えば,「衝突を起こさない限りどこにいてもよい」ということになる.フロート婚は一般に衝突を起こした場合には解体されることになっているので,これでも特に問題ないのではないか?ものは試しなのでやってみたいが,かなり大きい修正なのでバックアップを取ってから始めるのが妥当だろう.

コメントを残す

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

CAPTCHA