Skip to main content
QUICK REVIEW

[論文レビュー] Fast Generation of Big Random Binary Trees

William B. Langdon|arXiv (Cornell University)|Jan 13, 2020
Evolutionary Algorithms and Applications参考文献 16被引用数 4
ひとこと要約

この論文では、3.60GHzのCPUで1秒間に1800万ノードを超える性能を達成する線形時間・線形空間の最適化されたC++実装、random_tree()を提示している。この実装は、Knuthのシャッフルを用いてノードとリーフの順序をランダム化し、その後、ラティスパス再順序付けにより有効な二分木構造に変換することで、遺伝的プログラミング(GP)実験用に最大10億ノードの木を効率的に生成できる。

ABSTRACT

random_tree() is a linear time and space C++ implementation able to create trees of up to a billion nodes for genetic programming and genetic improvement experiments. A 3.60GHz CPU can generate more than 18 million random nodes for GP program trees per second.

研究の動機と目的

  • 遺伝的プログラミング(GP)実験において、非常に大きな木にスケーリングする際の従来のランダム木生成手法の非効率性を解消すること。
  • 極端な進化実験においても使用可能な、最大10億ノードの巨大ランダム木の作成を可能にすること。
  • 現代の並列プロセッサを考慮した最適化により、大規模なGPおよび遺伝的改善ワークロードにおける性能を向上させること。
  • 初期集団の生成およびサブツリー変異操作においても、計算効率を維持したまま木空間の均一サンプリングを実現すること。

提案手法

  • n+1個のリーフとn個の二項関数からなる決定的リストを、KnuthのFisher-Yatesシャッフルにより一様ランダムな順列に並び替える。
  • ラティスパス再順序付けを適用し、スタックの深さ制約に違反しない有効な二分木構造に変換する。
  • Ibaの線形時間アルゴリズムを用いて、再順序付けられたシーケンスをn個の内部ノードとn+1個のリーフを持つ完全二分木にマッピングする。
  • GPquickのSETNODEマクロを逐次的に使用してノードを割り当てることで、最終的なGPプログラムを生成する。この際、リーフまたは二項関数をランダムに選択する。
  • 木の構築とラベル付けの段階を分離することでパフォーマンスを最適化しているが、キャッシュ効率を高めるためにこれらを統合することも可能であると指摘している。
  • 擬似乱数生成にはPark-Miller PRNGを採用しているが、シード空間の制限によりその限界を認識している。

実験結果

リサーチクエスチョン

  • RQ110億ノード規模のランダム二分木を、大規模な遺伝的プログラミング実験を支えるのに十分な速度で効率的に生成できるか?
  • RQ2計算コストが著しく増大するのを防ぎながら、スケールに応じた木空間の均一サンプリングはどのように達成できるか?
  • RQ3現代の高速プロセッサを想定した再アーキテクチャ設計により、線形時間木生成アルゴリズムでどの程度のパフォーマンス向上が得られるか?
  • RQ4大規模ランダム二分木の深さは、FlajoletとOdlyzkoの分析から導かれる理論的期待値とどの程度一致するか?

主な発見

  • 新しいrandom_tree()実装は、3.60GHzのCPU上で1秒間に1800万ノードを超える速度でランダムノードを生成でき、10億ノード規模の木の迅速な作成を可能にしている。
  • ベンチマークテスト(Intel i7-4790 CPUを用いて)により、木のサイズに比例して線形にスケーリングすることが確認された(対数-対数プロットによる)。
  • 大規模ランダム二分木の平均深さは、理論的Flajolet限界(√(2π|size|))と非常に近く、32,000ノードを超える木では誤差が2%未満に収まっている。
  • 実装は32ビット整数のサイズ制限により制限を受けており、約20億ノードの木を生成しようとするとセグメンテーションフォールトが発生する。
  • シード空間が限られたPRNGを使用しているものの、通常のGPアプリケーションにおいては十分にランダムな木が生成されているように見える。
  • この手法により、進化したプログラムに代えて統計的性質を模倣するランダムに生成された木を用いることで、GPシステムの巨大な木に対する効率的なテストが可能になった。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。