2008年12月10日水曜日

【PAIP】10 Low-Level Efficiency Issues (その2)


  • 10.5 Use the Right Data Structures
  • キーとなるデータ構造については、徹底的に効率にこだわるべし。
  • 効率のあげ方は環境に依存する部分もあるが、ユニバーサルな手法もあるよ。
  • ここでは3つのケーススタディをやる。

  • Variables
  • ランタイムのデータ構造にVariablesが必要になることがある。(unification with backward chainingとか)
  • そのVariablesをどう実装するか。

    • ?頭のシンボルを使う。
    • ?頭のキーワードシンボルを使う。(かなり速い)
      #.マクロって知らんかった。
    • structureを使う。(シンボルより遅い)
    • もっとも速いのは、負数を使う。(パターン内の表現で負数を使えなくなるが)


  • Queues
  • listでやる。( O(N^2) )
  • (contents . last) pair 方式。
  • (last . contents) pair 方式。(これ、頭いいな。。。)

うむー、あと3Pなんだけど、時間が、、、きざんでいこう。こつこつ。

0 件のコメント: