正則コラッツ木生成でノード配列を廃止,再帰関数の呼び出しに変更

昨日仕掛けた枝数3,樹高18の正則コラッツ木出力はまだ続いている.進捗はおそらく20%程度と思われる.

image

ほとんどもうこれ以上改良の余地はないように思われるのだが,スタート時には30MB程度だった使用中メモリが1.4GBに跳ね上がっていることから推定して,やはりメモリ管理がネックになっているように思われる.メモリ使用量が増加する原因の一つに,ダンプ出力を格納しているRTFバッファの増大が関係している可能性はある.RTFテキストボックスは基本的にサイズ制限はないように思われるが,ダンプ出力をすべて収納しているので相当なサイズになっているのではないだろうか?これを避ける方法として,画面出力する代わりにファイルに書き込んでしまうということが考えられる.あるいは,ダンプのごく一部だけを保持して超過分を破棄するという方式も考えられる.まず,この後者の方式を試して効果があるかどうか見てみることにしよう.

こんな感じになった!

Open Live Writerでは動画がアップロードできないので(意味不明なエラーになる)ログインしてサイトで編集し,ブラウザでは見ることができるようになっているが,Open Live Writerに読み込んでも動画の部分が落ちてしまっている.やはり読み込めない.また,ログアウトしても画面が変わらないというのも不審な点だ.何度やってもリロードできない.つまり,サイトでしか更新できない状態になっている.面倒だが仕方ない.このまま続けよう.

枝数3, 樹高18の正則コラッツ木の出力が完了している.34分35秒で終わっている.ダンプは30行分程度しか保存されていないが,まぁ,こんなものでよいのではないだろうか?プレーンなCSV形式で保存するというオプションが必要だが,その前にこれを検証テストに適用してどうなるかを見てみることにしよう.⇒勘違いしていた.検証テストでは元々ダンプというのをやっていない.ということは,この処理ではもはや改善の余地はないということだろうか?いや,この処理は現時点でも十分高速なのではないだろうか?2^16のテストが56秒で完了している.⇒前回テストは2^32で一晩掛けて0.5%しか進まなかった.2^24でやってみよう.⇒3時間経過したが,まだ半分しか終わっていない.

一旦打ち切って先に進もう.あと2つやることがある.①B面の検証テストで進捗率を表示する,②A面に「CSVファイルに保存」オプション用のチェックボックスを設け,チェックがオンのときにはCSVファイルに保存できるようにする.ただし,「CSVファイルに保存」と「ゼルコバの木にエクスポート」は排他的で,どちらか一方しか選択できないようにしておく.⇒対処した.ゼルコバの木エクスポートはA面だけでなく,B面の3つの処理でも保存するようになっている.同等の動作にしておいた方がよい.いや,これらの処理ではコンソール出力を切り詰める操作をやっていないのだから,ユーザは画面からコピー/ペーストできる.従って,現状で特に問題ないと思う.

一つだけ注意する必要があるのは,A面の出力は切り詰められているため,冒頭の一行は書式的におかしくなっている可能性があるという点だ.ユーザが勘違いする可能性がある.⇒これでほぼ,正則コラッツ木生成ツールは完成したと思われるのだが,使ってもらうためには,少なくとも簡単なマニュアルないしヘルプが必要だ.簡略なものでよいと思われるが,画面だけでも結構込み入っているのでどうしても説明が必要だ.「動画」という手もない訳ではないが,それをやるとしたら動画編集にも手を染める必要が出てくるし,右から左という訳にはゆかない.画像入りのテキストを作る手段としては,いまのところWordPressしかない.メールという手もないわけではないが…

いずれ論文を書かなくてはならないが,論文はPDF形式で投稿ということになると思われるから,その方向性を考えておこう.HTMLとPDFの両方に出力できることが基本的な条件だ.PDFエディタは手元にないのでまず,HTMLで出力してそれをPDFに変換するということになるのではないか?最近使っていないが,Open Officeならそのどちらにも出力できた可能性がある.まず,それから調べてみることにしよう.

いま気付いたのだが,Open Officeはベクトル図形描画機能を持っている!しかも,このソフトは画像ファイルだけでなく,HTMLやPDFにも出力できる.XMLという出力形式もある.このファイル形式が解析できれば,もしかするとゼルコバの木の出力をこのソフトで編集できるようになるかもしれない.もしそれができればかなり画期的と言えるだろう.⇒このソフトはPDFも読み書きできるのだが,既存PDFファイルを開けない.言語コードを色々切り替えてみたが,だめだ.もし,PDFが読めてかつそれを編集できるのならベストなのだが…

昔,PDF論文を書いたときにはOpen Officeを使っていたのではないかと思う.もしかするとWordを持っていた可能性もあるが…最近はOpen Officeの話をほとんど聞いたことがないので,すでに開発が止まっている可能性もある.確かにwikiには2011年に開発終了したとある.その後Apache OpenOfficeLibreOfficeに分派したとあるので,まだ続いている可能性もある.NeoOfficeというのもあるが,これはマック専用のようだ.Apache OpenOfficeはほぼ壊滅的で,Libreだけが存続していると言ってよい状況のようだ.まず,これを評価してみることにしよう.

「これは素晴らしい!」と言ってよいのではないか?使い方はかなり難易度が高そうに思われるが,基本的に自由に図面を修正・変更できるのではないかと思う.これこそ,「探し求めていたもの」と言ってよいと思う.PDFファイルも難なく開けたし,編集することもできそうだ.できれば,ゼルコバの木から直接Libre形式ファイルに出力できるようにしたいところだが…日本語版ヘルプも別途ダウンロードできた.ゼルコバの木のヘルプも作らなくてはならないのだが…Libreのヘルプはローカルヘルプもブラウザで開かれる.ブラウザで開くヘルプならWordPressでも作れるかも知れない.テント村と別にWordPressをもう一つインストールすることは多分可能なのではないかと思う.LibreはWindowsのメタファイルへエクスポートできる.多分読み込みもできるはずだ.

Libreのドキュメントツールを見てみよう.⇒かなりいいんじゃないだろうか?このLibre WriterはベースがHTMLなので取り付き易い.ページスタイルとして標準とHTMLを指定できる.HTMLでは多分改ページが入らないのだろう.脚注も入るし,上付き・下付き文字も使える.数式入力は別アプリだが,任意の位置に挿入できる.まず,ほとんど申し分のない仕様と言ってよいと思う.ただし,いまいち操作が直感的でないところがあるので,慣れるまでにはしばらく掛かるかもしれない.WordPressとの連携はできるだろうか?

これまで画像の編集はWindowsのペイントを使っていたが,これからはLibre1本に統一できそうだ.LibreのDrawは,ビットマップ画像とベクトル画像を同時に扱うことができる.これがあれば,ほとんどのことはできるだろう.今回はとりあえず,簡単なオンライン・ヘルプを作るのだから,Libre Writer でHTML形式で作り始めればよい.レイヤーが使えるので,背景画像と上書きした図形を分離して操作できる.ここから直接サイトに投稿できれば最高なのだが… とりあえずは,ownCloudにアップロードしてアクセスしてもらうというのでよいのではないか?

サブノートには英語版をインストールした.また,LibreOfficeに少額寄付した.かなりいい感じになってきた.予備機では検証テストを2^24という設定で走らせている.経過時間は1時間51分で進捗率は12%だ.この計算だと,終了までに丸一日掛かりそうだが,使っていないマシーンなので放置しておける.まぁ,明日までには終わるだろう.しかし,このペースで2^32では途方もない時間が掛かりそうだ.

コラッツ問題は2^68までは反例がないことが確認されているが(これを検証Aとする),それとこのテスト(これを検証Bとする)では意味がまったく違う.2^68というのは,この範囲の任意の奇数Nを与えたとき,生成されるコラッツ数列がかならず1に収束するということを言っているのだが,現在実施している検証テストはその逆操作であり,1から出発してその値に至ることができることの検証だ.

我々の検証テストは検証Aと検証Bを組み合わせたものになっていて,検証Aを実行する段階でコラッツ数列の通るコラッツ木上の枝番号リストを生成し,次段の検証Bではこの枝番号リストを用いて1から奇数Nまでの経路が存在することを確認するものである.この枝番号リストは「チェーンレターの発信者アドレスリスト」に相当するものだが,このリストが正則コラッツ木生成論理によって作成されているという点が重要なポイントである.つまり,「正則コラッツ木生成論理」自体を検証するテストになっていると言える.通常の検証Aの方法では,コラッツ木のどこ(ポジション)を通っているのかも知らず,ただ盲目的な手順を反復しながら手探りで1に向かっているに過ぎない.

コメントを残す

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

CAPTCHA