2006-07-01から1ヶ月間の記事一覧

ランダムな個体(木構造)の生成 random-tree-v0.1.scm デバッグバージョン

cond car cdr if 等をランダムに組み合わせて構文木を構築するプログラムを書いてみました。 以下に示した生成プログラムによって生成されたコードは、まだ正しい文法にはなりません。 それと、出力されるコードの構文木の深さを表すallowable-depthが生成プ…

内部リンク

Abstruct的? ToDoもしくは目次 (どこと繋がっているかわからない場合は、コメントなどで教えてもらえると内部リンクを張ります。)

ランダムな個体(木構造)の生成 random-tree-v0.0.scm

GP

遺伝的プログラミング (情報科学セミナー)作者: 伊庭斉志出版社/メーカー: 東京電機大学出版局発売日: 1996/06/01メディア: 単行本 クリック: 3回この商品を含むブログ (5件) を見る のサンプルの一つに収められている create-individual-program, create-ar…

ToDo

「やりたいこと」 高速なschemeで遺伝的プログラミング(GP)を実行させる。>保留 scheme(gauche)などで遺伝的プログラミングを実行させる>着手:Abstruct的? 「そのために必要なこと」 schemeで遺伝的プログラムが可能か調査する。 http://www.geneticprogr…

内部リンク

GP

Abstruct的? ToDo (どこと繋がっているかわからない場合は、コメントなどで教えてもらえると内部リンクを張ります。)

初期集団の木構造の生成(Initialization)を考慮した、非終端記号をランダムに出力するコード

GP

現在の非終端記号 car, cdr, cons, quote, define, if, eq?, list? condをifに、代入演算(バインド)はset!を削ってdefine単体のみとする。condは引数の数を決定できないうえに、構文的束縛が強いのでランダムに木構造を作るのは難しい。atomにatomかlistをバ…

とりあえず、非終端記号をランダムに出力するコード

GP

現在の非終端記号 car, cdr, cons, quote, set!, cond, define, eq?, list? (use math.mt-random) (define mt (make <mersenne-twister> :seed (sys-time))) (define (non-terminal) (let ((rdm (mt-random-integer mt 9) )) (cond ((eq? rdm 0) 'car) ((eq? rdm 1) 'cdr) ((eq</mersenne-twister>…

とりあえず、終端記号のa〜zまでをランダムに出力するコード

GP

シンプルなコード↓(mixiで教えていただきました) (use math.mt-random) (define mt (make <mersenne-twister> :seed (sys-time))) (define (terminal) (let ((rdm (mt-random-integer mt 26) )) (string-ref "abcdefghijklmnopqrstuvwxyz" rdm)))もしくは (use math.mt-random)</mersenne-twister>…

乱数:メルセンヌツイスター

GP

参考にさせていただいたページ。 http://sicp.g.hatena.ne.jp/hyuki/20060503/mt systime使っているけどメルセンヌツイスターになっているのだろうか? 僕にはよーわかりません。 gosh> (use math.mt-random) #<undef> gosh> (define mt (make <mersenne-twister> :seed (sys-time))) </mersenne-twister></undef>…

内部リンク

GP

Abstruct的? ToDo (どこと繋がっているかわからない場合は、コメントなどで教えてもらえると内部リンクを張ります。)

出来事・状況の連鎖

なんか久々に哲学くさいことを考えた。 システムとしての個別の意識が識別するのは出来事・状況の連鎖である。 会話は出来事・状況に含まれる。 感情は出来事・状況に含まれる。 発話は次の出来事・状況を生成する。 仮定:全ての出来事・状況は数列に写像で…

1.初期集団の木構造の生成(Initialization)

GP

ランダムに集団数の数だけ個体(木構造)を生成させる. さて、どう書くかな。 まず乱数を発生させる手順(mixiで教えていただきました) gosh> (use srfi-1) #<undef> gosh> (use srfi-27) #<undef> gosh> (random-integer 100) 81 gosh> (exit) ---- gosh> (require-exte</undef></undef>…

適合度の計算

GP

ハミング距離を使う。リスト長が一致しない場合は、長いほうに合わせる。 値が0に近いほど適合度が高いと判定する。レーベンシュタイン距離 というものもある。

非終端記号、終端記号の決定

GP

終端記号(一般的には関数) car, cdr, cons, quote, set!, cond, define, eq?, list? 終端記号(一般的には変数) アルファベットの小文字一文字(a〜z)

Abstract的?

GP

進化的手法の代表例でるGPは現在盛んに研究されいます。 GPを自然言語処理に応用するための基礎技術として 「任意のリスト(アルファベット小文字1文字のみのリスト)から、 解となるリスト(アルファベット小文字1文字のみのリスト)を 出力するプログラム」 を…

ToDo3

いろいろ考えた結果、まずは遺伝的プログラムを何らかの形で 動かすことが重要だと言う結論に至る。高速化するのはその後にする。 「やりたいこと」 遺伝的プログラミング(GP)の例を実行させる。 「そのために必要なこと」 schemeで遺伝的プログラムが可能か…

Automatic Memory Management in newLISP を翻訳してみる

Automatic Memory Management in newLISP

JAVA LISP 「QUILT」

http://www.cobalt.co.jp/writing/java_lisp/java-lisp1.htm javaでのschemeの実装を目指しているらしいページ 実装の参考になるかも。 javaで実装することは確かにガベージコレクションを 実装する必要がないので楽にできるかもしれない。 javaを使うことで…

Empirical studies of LISP have shown that most LISP cells are not shared but can be reclaimed immediately during the evaluation process. newLISP does this by pushing a reference of each created memory object on to a result stack. When a hi…

One Reference Only, (ORO) memory management

1つの参照のみ(One Reference Only:ORO)、メモリ管理 Memory management in newLISP is different from memory management in other dynamic languages and based on a One Reference Only rule. Memory is never marked or reference counted, but a decisi…

Traditional automatic memory management

伝統的な自動メモリ管理 Traditional automatic memory management In most programming languages automatic memory management is realized by a process called Garbage Collection. This is a process where allocated but unused memory gets occasiona…

1

During expression evaluation newLISP or any other interactive language system will constantly generate new memory objects resulting from intermediate evaluation results or from de-referencing memory objects due to new assignments or change…

遺伝的アルゴリズムを使った対話システム

書籍「自然言語処理ことはじめ」に載っていた。 どうやら、単語を遺伝子配列の単位としているらしい。自然言語処理ことはじめ―言葉を覚え会話のできるコンピュータ作者: 荒木健治出版社/メーカー: 森北出版発売日: 2004/06/12メディア: 単行本(ソフトカバー…

Schemeの外部仕様

Revised(5) Report on the Algorithmic Language Scheme アルゴリズム言語Schemeに関する第五改訂報告書実は自ら書くものではなく、外部使用は決定している(手抜き?) 変更部分 "nil"を"()"(空リスト)と認める。 スタックカウンタ方式で()を要素とみなし配…

A Linear Lisp Machine

このセクションの中で、私たちは、全てのconsセルがちょうど1の参照カウントを持っているLisp Machine のオートマトン理論モデル(それはデータ構造がすべて木であることを暗示する)を導入します――なぜなら、それらは共有またはサイクルを持っていません。例…

Introduction

借り手も貸し手もない; ローンはたびたびローンそれ自体と友人の両方を失うから… [Shakespeare, Hamlet, I. iii 75] 共有がコピーの代わりになるので、データ構造の共有は効率的である場合があります。しかし、それは誰がそれらの管理に責任を負うかに関して…

Abstract

線形論理は、ガーベジ・コレクションの問題の1つの解決策として提案されており、より多くの関数型言語内の効率的な「update-in-place」能力を提供しています。 線形論理はアクセスのしやすさを持ちます。そしてその結果、コピーは明示的な分配されたメモリの…

ToDo

「やりたいこと」 高速なschemeで遺伝的プログラミング(GP)を実行させる。 「そのために必要なこと」 schemeで遺伝的プログラムが可能か調査する。 http://www.geneticprogramming.com/Tutorial/ >できそう 線形論理(?)に従ったschemeを実装する。 >外…

Lively Linear Lispを翻訳してみる

Lively Linear Lisp

課題

実装しようとしているものには何が必要か? schemeの(最小)動作は何種類あるのか? それそれの動作に必要なデータの最小構造は?