仮想木は一般木の縮約,一般木は仮想木の展開とみなすことができる

「三本桜の復活」というテーマで作業を進めてきたが,ここで大きく方向転換することに決めた.「完全正則木」というアイディアは(少なくとも当面のところ)完全に破棄される.なぜ,「完全正則」というところにそこまでこだわってきたのかと言えば,コラッツ予想問題を解くためにはどうしても,1を出発点としてコラッツ木をボトムアップで構築可能であることを示すことが必要であり,そのためには「完全正則」という縛りが必須であると考えたためであるが,それ自体,ある種の「呪縛」であったと言うこともできる.「仮想木」にはやや変則的なところがあり,「完全正則」から逸脱している部分があるため,それが可能な「完全木」という概念を導入しようとしていたのだが,最終的には「完全正則にこだわる必要はない」という結論に至った.

▲隣接リストをインポートしようとすると,必ず「ライセンスキーの登録」パネルが現れて,キャンセルしても前に進まない.⇒「インポート」機能そのものが,「ライセンス」で保護されているためだ.ゼルコバの木コラッツ特注版はライセンスフリーで公開予定なのでインポートは無条件で可能でなくてはならない.

我々が知ろうとしているのは,「完全正則木」の一般的な性質ではなく,「コラッツ木」という「特殊な木」の性質を調べようとしているのだから,その「木」が「完全正則」でないということを受け入れるしかない.前稿では「長子木」を再定義して,「仮想木」からノード1を除去したものとしている.この再定義は有用である可能性もあるので,一応維持するということにしておこう.つまり,長子木は依然として完全正則木として取り扱うことができる.仮想木とは一般コラッツ木上の兄弟ノードを長子ノードに縮約した簡略木であると考えられるから,仮想木を還元すれば一般木に展開可能であると言えるはずだ.「完全木」に関係するコードをまるごと破棄することになるので,開始プロジェクトはかなり前のバージョンに戻ることになる.

プログラムのタイトルは「コラッツ完全木検定」から「コラッツ仮想木検定」ないし「コラッツ長子木検定」に変わることになる.ここでは一応,Collatz Eldest Sons Tree Experiment というのをプロジェクトの正式名称として採用することにしよう.仮想木検定の最終バージョンを探してみよう.「コラッツ銀河高速道路系プロジェクト」というフォルダにはCollatz Milky Highway V2.0.1 2022/02/11というのが入っている.おそらくこれが最終版ではないかと思われるが,V2.0に入ったばかりなのでもっと新しいものがあるかもしれない.CollatzCoreTreeというフォルダに入っているのはタイトルは上と同じだが,少しだけ新しい.ゼルコバの木のエクスポート機能が廃止され,Virtual TreeがCore treeに変わっている.このCore treeというのは完全木ではなく,仮想木を意味している.ビルド日付は前者が2月20日,後者が2月22日だ.

2月23日にはプロジェクト名がCollatzCompleteに変わっているので,ここで方向転換していることは確かだ.日付入のバックアップではこの他に,CollatzCoreTree 2022-02-22-1というのがある.ビルドの時刻ではこちらの方が新しいので,こちらの方が最新である可能性はある.確かに,バージョンもV2.1.0に変わっているのでこれが最終版と思われる.しかし,オプションのラベルがComplete treeに変わっているので,すでにこの版では完全木に移行しているのかもしれない.いや,内容は変化していないようだ.アドレスコードの区切り文字がコンマからピリオドに変わっているところやボタンラベルがあちこち変わっているなど,新しい構成に移行しつつあることが看て取れる.この版を最新版としてよいのではないだろうか?

ともかく,ここから始めることにする.念のため2月22日頃のログをチェックしておこう.2月22日のログのタイトルは「コラッツ完全木検定と呼ぶことにする」だ.この頃はコラッツ長子木のことを中核木と呼んでいる.いや,少し違う.というより,この版はすでに完全木に移行してしまっている.この記事では「銀河系」と呼んでいるが,そこまで戻らないと抜け出せない.「コラッツ銀河高速道路系プロジェクト」に入っているのはすでに完全木だ.CollatzMilkywayのバックアップは最終が2月12日でかなり古い.いや,もっと新しい版もある.2022/02/20 7:40というのがおそらく最新ではないか?いや,これはすでに完全木に移行してしまっている.⇒ダメだ.頭が完全に混乱している.1→5という単枝しかないのが仮想木だ.もう一度調べ直しだ.

やはり,最初に見たように,2月23日を境目に銀河系から完全木に移行したと見て間違いないようだ.プロジェクト名はCollatzMilkyway→ CollatzCoreTree→ CollatzCompleteのように遷移しているが,CollatzCoreTreeはその過渡期でごく短い期間,多分1,2日しか使われていない.従って,このCollatzCoreTreeというのが,仮想木としての最終版と見てよいと思う.上で採り上げたCollatzCoreTree 2022-02-22-1はすでに完全木に切り替わっている.CollatzCoreTreeというプロジェクト名はほとんど使われていないので,このプロジェクトのフォークという意味で,”CollatzCoreTree”を継承することにしよう.コラッツ完全木検定の最新版はV3.0.0となっているが,このバージョンはここで凍結されるので,新たなバージョンをV3.0.1から始めることにする.

この方向転換はある意味で銀河系に回帰することを意味する.コラッツ銀河系では一般道路を(仮想的に)束ねたものが高速道路であるとしているが,「仮想木は一般木の縮約,一般木は仮想木の展開とみなす」という立場はこれと基本的に等価であり,その関係をより実質的なものとして具体化するのが今回のプロジェクトの目標であると言える.この意味では完全に銀河系路線の継承になっているが,Milky Highwayという名称を用いるかどうか?というところが問題だ.CollatzCoreTreeのアセンブリ名はCollatzCoreTreeになっている…Milky Highwayという名称は結局一度も公式には使われていないので,これを正式名称としてもよいのではないだろうか?タイトルにはMilky Highwayと入っているので,アセンブリ名もそれに倣うことにしよう.

オプションの出力モードにはCore treeが使われている.これは当面そのまま使うことにする.Auto-copy branch ordinal numbersというチェックボックスは廃止する.Export adjacency listはA面と独立にB面でも設定できるようにしておこう.とりあえず,A面はすでに完成しているのではないかと思う.Root numberには2倍数と3倍数は設定できない.いずれも一般木では終端ノードとして扱われているためだ.しかし,仮想木では3倍数は設定できる.これでよいのだろうか?

たとえば,3や75などば3倍数でも仮想木上に存在するが,21や69などは仮想木上のノードではない.21をルートに設定した場合の子ノードは113, 227, 7281などが出現する.これらのノードの親ノードは本来は5なのだが,21という非長子ノードが長子ノードの5の代理人になっているという動作だ.ただし,自ノードより前方にあるノードは21の部分木には現れない.これでよいのか悪いのか,判断に迷うところだが,とりあえず「保留」としておこう.

B面の動作を見てみよう.こちらも特に問題はなさそうだが,汎用アドレスコードには未対応だ.仮想木処理に関してはほぼ現状で完備しているので,今回の修正の本旨は,「仮想木で汎用アドレスコードをサポートすること」にあると言ってよい.それを実現することが,一般木⇔仮想木の対応関係の実装に当たると言えるだろう.

コメントを残す

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

CAPTCHA