12243点のCollatz4000X.ZELが解けた!

何か打つ手はあるのだろうか?現在のアルゴリズムで,時間は掛かっても最終的には解けているのかどうかを知りたい.Collatz12146.ZELを放置して,最後までやらせてみたい.どのくらい時間が掛かるのか予測も付かないが,もし,最終的にはつねに解けるというのであれば,アルゴリズムの正否の問題ではなく,効率の問題ということになる…

「結婚枠だけをセグメント検定の対象とする@20230125」というオプションをもう一度試してみた.これは結構おもしろいかもしれない.これだけでかなり高速化する.Collatz4000X.ZEL(12243点)を開いて,系統並び替えを154秒でこなすことができた.3分掛かっていない.スレッドとスレッドの間が,相当開いてしまっているが,これはこれで対処できるのではないだろうか?

image

あるいは,処理を二段階に分けて,①結婚枠のみで概略ソート,②人名枠を含めた詳細ソートのような手順も考えられる.というか,たとえ結婚枠だけのソートであっても,これほどスプリットが出るというのはおかしいので,まず,そこに注力すべきではないだろうか?⇒「結婚枠だけをセグメント検定の対象とする」と言っても,実際には人名オブジェクトもすべて検定の対称となっている.修正箇所は,TRIBEBOX:JoinAdjacentBoxで人名枠が接触している場合のみマージしていたのを,同一ボックス内では無差別にマージしているという違いだけだ.従って,人名枠が結婚枠内でどれほど開いていても圧縮が掛からない.

暫定的にTRIBEBOXにフラグを設けて,二段階処理を組み込んでみよう.⇒組み込みは簡単に終わったが,53直系血族図.ZELではループを30回回すまでフラグが立ってこない.つまり,「結婚枠のみ検定」でもほとんど動作には変化が見られないということになる.Collatz4000Xなどではおそらく,かなり顕著な効果はあるものと思われるが,問題が解決しているかどうかは走らせてみないと分からない.⇒解けた!結婚点一致と衝突検定を独立にループしてerrcntとcollisionがゼロになってからセグメント検定に掛けるという手続きに変更してみた結果,134回ループして解を得ることができた.従って,アルゴリズム的には閉じていると言っても間違いではないと思う.

そうなると,あとは効率の問題ということになる.もう少し,というかもっともっと改善の余地はあるのではないだろうか?

image

ともかく,この版を一応バックアップしておこう.


コメントを残す

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

CAPTCHA