トップページ⇒tech
118コメント30KB

プログラムのSEXと自己増殖について

■ このスレッドは過去ログ倉庫に格納されています
0001愛の精子NGNG
生物はオスとメスがSEXをして自己増殖をはかります。

それではコンピュータにおいて、オスとメスの役割をする
プログラムを並列動作させれば自己増殖を起こすのでしょうか?

遺伝的アルゴリズムなるものがこの世に存在するらしいことは
知ってるのですがそれってプログラムのSEXについて語ってる
ってことなんでしょうか?
0002デフォルトの名無しさんNGNG
JavaBeansを腐らして豆腐や納豆をつくれないかね?
0003デフォルトの名無しさんNGNG
僕はいつでもコンピュータとSEXしてプログラムを生み出してます
0004デフォルトの名無しさんNGNG
生物にはオスとメスが無いものもあります。
自己増殖にはSEXは必須ではありません。
プログラムも同じでオスとメスが無くても自己増殖します。
ウイルスと呼ばれるソフトウエアの一部などに自己増殖機能が実装されています。
以上
0005デフォルトの名無しさんNGNG
今の流行は両性具有YO!
0006愛の精子NGNG
SEXをして種を保存しているものとそれ以外の方法で自己増殖している
ものとはどんな違いがあるんでしょうか?

コンピュータウィルスは確かにそれ自身で自己増殖しますが、複製物には
ほとんど多様性はありません。自己増殖するコンピュータウィルスも
将来は遺伝子のようなものを持ってまさにSEXまがいなことをして
増殖をするかもしれませんね。
0007デフォルトの名無しさんNGNG
SEXまがいなこと・・・植物だと、
花粉が雌しべにつくことか。
プログラムで言うと、プログラムの一部のコードが
もう一つのプログラムに結合することだな。
0008デフォルトの名無しさんNGNG
いい考えなんじゃなーい
実装がむず層だけど
0009デフォルトの名無しさんNGNG
SEX にやけにこだわるな…
別にコンピュータを人間に似せなきゃいけないわけでもあるまい。
0010デフォルトの名無しさんNGNG
GAとかでアルゴリズムとして使われてるよな?
0011デフォルトの名無しさんNGNG
ここは今からSEX指向言語を作るスレとなりました。
みなさんご了承ください。
0012デフォルトの名無しさんNGNG
自分好みのアンドロイドを作ってSEXしたい。
0013うんNGNG
SEXは遺伝子が交わることで
変化する環境への適応能力を向上させる意味合いがあります
0014デフォルトの名無しさんNGNG
鮭のSEXって気持ちよさそうだよね。見ているだけでこっちまで(略
あとタンポポの女性って始めてのSEXの時、人間よりもすごく痛いそうだよ。
プログラムのSEXってどんなんだろうね。
0015デフォルトの名無しさんNGNG
SEX自体はどうでもいいんだよ。
重要なのは減数分裂。
減数分裂のときに遺伝子が組み替えられるが、
このとき繋ぎ合わされる部分のインターフェイスがしっかり決まってるから誤作動を起こさない。
COMやその他の機能を使えばこれはできるでしょ。
たとえば標準入力からデータを受け取り、加算して、標準出力に出すプログラムと、
ファイルからデータを読み込み、印刷するプログラムを交配させて、
ファイルからデータを読み込み、加算して、印刷するプログラムと、
標準入力からデータを受け取り、標準出力に出すプログラムを作ることは可能だろうね。
ネット経由で入出力を行ったり、加算じゃなくて乗算とか、いろんなプログラムと混ざれば進化するんでない?
0016C_sugarNGNG
興味深い。

ウイルスが「交配」によって増殖し、それによって進化することができれば凄いことになる。
0017デフォルトの名無しさんNGNG
>>16
交配はともかく他のを取り込んで進化するウイルスってなかったけ?

コンピュータウイルスが進化してワクチンになったら面白いなぁ。
0018デフォルトの名無しさんNGNG
アホスレ
0019デフォルトの名無しさんNGNG
>>17
その前に、自己免疫機能があるOSが必要だろうよ。
そして、正常なソフトですら外敵だと判断して削除してしまう。
M$なら作りかねないな。(M$製品以外は全て敵と判断)
0020デフォルトの名無しさんNGNG
>19
そこは、NECチェックを回避した往年のテクニックで、
0021 NGNG
0022デフォルトの名無しさんNGNG
>>1-20
全部妄想
0023デフォルトの名無しさんNGNG
むう・・生物学は高校レベルの知識しかないのでわからん
0024デフォルトの名無しさんNGNG
プログラムのSEXじゃないけど、
実行コードをランダムに作って実行させて、止まった(飛んだ)時点で、
止まった所から、新たにランダムにコードを作って再実行。

これをやると、生物的プログラムが出来るんじゃないかと・・・
0025デフォルトの名無しさんNGNG
>>24
意味がわからん・・・
0026デフォルトの名無しさんNGNG
>>24
どうやってランダムな実行コードを吐き出すんだ?
なんか動かんコードばっかり生成されそうだが
002724NGNG
>>25
だと思った。

例えば、
00 11 22 33 44 55 66 77
という実行コードがあったとして、
44 の箇所でプログラムが暴走したとする。
そしたら、
00 11 22 33 の次から 55 66 77 88 … といった様にコードを再構築して、
また最初から実行。

暴走しないプログラムが出来るまで繰り返す。

説明下手でスマソ。
002824NGNG
>>26
そこが生物っぽくない?
0029デフォルトの名無しさんNGNG
障害者ばかり産まれるといってるようなもんだ。
0030デフォルトの名無しさんNGNG
>>27
暴走したらその時点でダメじゃん。

つか、まず暴走の基準を明確にしないと。
そして、VMつくって実行。
あとは、VMで暴走しないようにすれば・・・



って、だめじゃん・・・
003124NGNG
>>29
まぁ、そうなんだけど。
コード=DNAだと考えて・・・

>>30
そこなんだよね。
そんなOSでもあれば・・・
0032デフォルトの名無しさんNGNG
VM上で実行したプログラムが落ちるか一定時間反応がなかったら暴走とみなせば…
003324NGNG
>>32
作ってみたいんだけど、技量が無いのです。

これができたら、
勝手にハードにアクセスするプログラム(生物)とかできそうで、
面白いかなぁ、と。

誰か作って。
0034デフォルトの名無しさんNGNG
>>32
VMとか袈裟な事いわんでも子プロセスをforkして監視するだけでいくねえ?
0035デフォルトの名無しさんNGNG
コボルとjavaを合体させてコヴァを作ります。
0036デフォルトの名無しさんNGNG
>>34
いや、暴走の基準があいまいだったから。
マシン止まるのが暴走なのか、はたまた、
HD内のファイル消す(作る)のが暴走なのか。

つか、よく考えたら相当な確率じゃないとAPIつかわねーんだよな・・・

つか、Forkで大丈夫か?

int main(){
while( make() );
}

int make(){;
char* cp;
unsigned long i;
i = MAX_MACHINE_CODE;
cp = (char*)malloc( MAX_MACHINE_CODE );
while( *cp = rand()%256 && --i );
return ((void)(*)(void)cp)();

}

とかでもOK?
(動くかわからんけど)
0037デフォルトの名無しさんNGNG
訂正
>return ((void)(*)(void)cp)();
return ((int)(*)(void)cp)();

これやっちゃうと、また違う動きするけど。
0038デフォルトの名無しさんNGNG
javaにevalを足してエヴァを作ります
0039デフォルトの名無しさんNGNG
ボケてた。
>while( *cp = rand()%256 && --i );
while( --i ) *cp = ( rand() %256 );
0040デフォルトの名無しさんNGNG
親から子供を作るんじゃないのか?
ただ単にランダムコードを作るだけじゃ生物でも何でもないだろ。
0041デフォルトの名無しさんNGNG
>>40
あ、なんだ。

んで、暴走したら、KILL のか。
0042デフォルトの名無しさんNGNG
親のコードに付け足される形で子ができるんじゃないかという事だと思うが…
で、暴走するような奇形児は死んでまともに動く奴は生きると。
0043デフォルトの名無しさんNGNG
まともの定義がこれまた微妙だな・・・
0044デフォルトの名無しさんNGNG
もしそんなプログラムが出来たら人間の世界が侵略されそうだね。
映画の世界だ。
0045デフォルトの名無しさんNGNG
プログラムを作ってくれる生物ができるまで希望
0046デフォルトの名無しさんNGNG
>>44
コンピュータからは出て来れないんだから実体化モジュール
が実現しない限り人間の世界は侵略されない
まぁ私なんかはコンピュータの無い世界になったら
生きてけないから同義ないかもしれないけれど(w
0047デフォルトの名無しさんNGNG
減数分裂はわかるが、性別は必須なのか?
生殖のチャンスが減ると思うのだが。
0048デフォルトの名無しさんNGNG
高等な生物のゲノムは無駄だらけだけど、原始的な生物のゲノムは
ほとんど無駄がないんじゃなかったっけ?ちょっとバグったら即暴走死亡。
0049デフォルトの名無しさんNGNG
最初は単純なコード群だろうね。(NOPだけかも知れないし。)
性別は自ずと出来てくるんじゃない?
そこまで進化するには時間がかかるとは思うけど。
0050デフォルトの名無しさんNGNG
1-49はレベル低すぎるから無視するとして、
自己生成とか自己修復するようなプログラムを研究してるところは
ないのかな。
0051デフォルトの名無しさんNGNG
遺伝的プログラミング(GP)とか。
0052デフォルトの名無しさんNGNG
>>49
たくさんあるけどまともな成果出してる所は知らん。
0053デフォルトの名無しさんNGNG
>>50だった…
0054デフォルトの名無しさんNGNG
>>51
GAのこと?
遺伝的アルゴリズムだけど・・・
自己生成とか、自己修復とは程遠い。
というか、あれは解探索アルゴリズムなんだけどね。
0055デフォルトの名無しさんNGNG
GA とはちゃうよ。
0056デフォルトの名無しさんNGNG
>>50
無視するな!
「あらゆる可能性を秘めたプログラム」を作るプログラムだぞ?
作ってみろっちゅうねん!!ヽ(`д´)ノ
0057デフォルトの名無しさんNGNG
GPって何?

>「あらゆる可能性を秘めたプログラム」を作るプログラムだぞ?
誰もそんな事言ってないと思う。
0058デフォルトの名無しさんNGNG
>>57
>誰もそんな事言ってないと思う。
だって、どんなのができるかすら判らないんだよ?
0059デフォルトの名無しさんNGNG
遺伝的プログラミング面白そうだね。
GAを発展させた物なんだ。

GAを教えてくれた人感謝。
すぐにでも調べてみまっせ。
お勧め本あればよろしく。
0060デフォルトの名無しさんNGNG
>だって、どんなのができるかすら判らないんだよ?
ちがうよ。
効率よく計算できるようになるって意味とか、そんな感じ。
0061デフォルトの名無しさんNGNG
>>60
ありゃ、話がずれてるかな?
>>1-49までの話のことです。
0062デフォルトの名無しさんNGNG
>>61
何だ納得。
49までは、ちょっと行ってる事が突飛過ぎる。

こういう話で盛り上がりたいけど、
スレタイトルなんとかならないか?
人材がいないのは仕方ないけど。
0063デフォルトの名無しさんNGNG
自己増殖とかいうとやっぱりスクリプト系なのかな。
ちょっとPerlで書いてみた。
2つの引数を加算する"add.pl"をプログラム内から生成して、
それを呼び出して使用している。

#!/usr/bin/perl

$A1 = '#!/usr/bin/perl';
$A2 = '$A = $ARGV[0] + $ARGV[1];';
$A3 = 'print "$A";';

open (f, "> ./add.pl");
print f "$A1\n";
print f "$A2\n";
print f "$A3\n";
close (f);

`chmod +x ./add.pl`;

$B = `./add.pl 3 5`;
print "3 + 5 is ... $B\n";
0064デフォルトの名無しさんNGNG
>>63
(゚Д゚)ハァ?
どんどん話が低レベルに…
0065デフォルトの名無しさんNGNG
62は勘違いしてると思う。
とりあえず、それにどういう発展性(意味)があるのか
考えてみるといいよ。
0066デフォルトの名無しさんNGNG
>65
>62でなくて>63ですか?
>63の発展性(意味)は、
必要なルーチンを予め自分の中に埋め込んで持ってるんでなくて
母体となるプログラムが勝手にWebページから情報を集めたり
掲示板で勝手に質問して回答を回収したりして
それをもとに勝手に自分でサブプログラムを生成して
勝手に自己増大していくプログラムになります。
0067デフォルトの名無しさんNGNG
自己増殖か....。数年前、JavaとC++でティエラとか作ったなあ。
もっとも、ティエラの生物は突然変異を伴う「細胞分裂」だったけど。
0068デフォルトの名無しさんNGNG
自分でデバッグしてくれるプログラムきぼ〜ん
0069デフォルトの名無しさんNGNG
ウィルス作るの?
0070デフォルトの名無しさんNGNG
>母体となるプログラムが勝手にWebページから情報を集めたり
>掲示板で勝手に質問して回答を回収したりして
なるほどね。
ただ、データマイニングの方が壮大な問題だよな(w

そもそも、それって既に要求を理解して・・・・と言う知能が
完成してなきゃ無理だろ?

でもって、もう一つ突っ込めばスクリプト言語じゃなくてもできるしな・・・

ティエラって何?
0071このスレ見たらNGNG
攻殻を思い出しますた。
0072デフォルトの名無しさんNGNG
.COMだと先頭から実行するんだっけ?
.EXEは違うんだよね。
0073デフォルトの名無しさんNGNG
コンピュータだと計算とか通信とか使うのが効率的だから。
遺伝的自律コンパイラコンパイラ(ルール作りを含む)みたいのを作って
自らを生成,複製,うんぬんする。
あとはのとなれやまとなれ。
0074デフォルトの名無しさんNGNG
>>73
人間が解析できないようなのができてたらコワイヨ〜
007573NGNG
そして、いつかはプログラム同士が、通信をして
それぞれを合体したようなソースを吐けるような仕掛けを
しておくのもおもしろいかもしれない。

普通に暮らす人間が自然の法則に気づくのは非常に難しいように
作成したプログラムがプログラマが教えていない文法に気づくのは
非常に難しいことは容易に分かる。
なぜ人間が気づいたかは、過去の多大な経験を参照できた点と
緻密な積み重ね、偶然による産物によるものではないか?
ということで、このような仕組みも用意できればさらにおもしろそうである。
0076    NGNG
  種
0077デフォルトの名無しさんNGNG
プログラム同士がSEXが確率的にしか起こりえないとすると
どんなプログラムに進化するかは理論的には全く予測できない
類の問題になるのでは?

運動方程式のような時間発展はある程度理論的に予測可能だけど
このようなアルゴリズム同士のの複雑な時間発展はライフゲームの
ごとくに全く予測がつかないものだと思うので、それこそ超並列
コンピュータでもない限り結果を出すのに宇宙の年齢程度の時間が
かかるとかそんなことにもなりかねないでしょうね。

# ただ、量子コンピュータが実現したら話は別ですが・・・
0078    NGNG
  育む  
0079デフォルトの名無しさんNGNG
予測できる結果はあまり考えてないです。(笑)
ただプログラムにある程度の自由度を与えて
どうなるのか見て遊んでみたいと思ったのです。
プログラムを制御するのでなく、プログラム自身が自らを制御する世界。
うまく制御しないとコンピュータがお亡くなりになるから
ウィルスよか怖いという最大の弱点が...。
使えね〜
0080デフォルトの名無しさんNGNG

使え根〜 が むなしい。 まあ緊張するなよ。
0081デフォルトの名無しさんNGNG
GAとかGPとかANN(は、ちと違うか)とか。検索すれ。

Tierra入門
http://www.isd.atr.co.jp/ecm/tierra-doc/japanese/tierra.html
交配はしないけど自己増殖はするぞ。
0082デフォルトの名無しさんNGNG
ネイティブなコードでハードまで活用してしまうくらいの生物を作りたいんだけど。
0083デフォルトの名無しさんNGNG
はぁ〜最近オナニ−ばっかセックスしてぇ〜
0084デフォルトの名無しさんNGNG
今、Tierra入門読んでるけど、
果たしてこれに意味があるのかどうかは疑問。
008581NGNG
>>84
ロマンのない奴だな。
進化するんだぞ! PCの中で! プログラムが!
萌えるだろ。それで充分。
0086デフォルトの名無しさんNGNG
まあ、燃えない人には何を言っても燃えないですし。
0087デフォルトの名無しさんNGNG
やっぱり二足歩行するまで1000年くらいかかる?
0088デフォルトの名無しさんNGNG
>進化するんだぞ! PCの中で! プログラムが!
それにどんな意味があるのかが問題なんだろう。
0089デフォルトの名無しさんNGNG
>>88
だから、萌えるからってのが目的・理由・意味なんでしょ。
0090デフォルトの名無しさんNGNG
>だから、萌えるからってのが目的・理由・意味なんでしょ。
ワラタ

0091デフォルトの名無しさんNGNG
GPを図書館で探したんだが、ないぞ・・・

もしかして、廃れた?
009281NGNG
>>88
まあ確かにティエラは直接役に立つもんじゃないかもしれんが
生命の進化を考えるのに非常に有意義かと。
淘汰と突然変異でこれだけのことができるなんて画期的だYO!

直接役に立つものといったらやはりGAだろうな。遺伝の原理を応用して短時間で優良な解を発見できる。

>>91
おまえんとこの図書館が廃れてると見たな。
GPの専門書は無くても、人工生命関係の本なら大抵紹介されてるはず。
0093デフォルトの名無しさんNGNG
>>92
>おまえんとこの図書館が廃れてると見たな
比較した事無いからわからんけど、
洋書に関しては日本1だと思うんだけど。
人工生命ってのもなかったかも。

ニューラルネット関係が多かったな。
あとは、知識、推論関係。
0094デフォルトの名無しさん NGNG
たんぱく質の機能をモジュール化する作業が必要だと思うよ。
そのまえにATCGを真似て自動的に結合するモジュールとか。
とにかく本格的にSEXするには原子や分子の理解が必要だと思う。
009581NGNG
http://www.1101.com/morikawa/index_AI.html
ここは非常に分かりやすく書いてあって入門に良いよ。
0096デフォルトの名無しさんNGNG
でも実際そろそろ事故書き換えして virus checkerの
pattern fileをすり抜けるような virusがでてきてもいいんじゃないか?
それにこれからは Grid computingがはやるみたいだしなあ。
気がついたらそこではしってる codeのほとんどが自己増殖するやつだった
とかいうおちになってたり。
0097デフォルトの名無しさんNGNG
おまえら、『パワー・オフ』って小説は読みましたか?

http://www.focus.ne.jp/99/who/works/s_power.htm
(適当なところがなかった)
0098デフォルトの名無しさんNGNG
shoge
0099デフォルトの名無しさんNGNG
aagggeeee
0100デフォルトの名無しさんNGNG
>>897これとかねw
http://freehost.kakiko.com/freen/kesaku.html
0101デフォルトの名無しさんNGNG
897?
0102デフォルトの名無しさんNGNG
>>101
>>97の間違いだと思われ。
0103デフォルトの名無しさんNGNG
>>102
それにしても、どこが >>97 と関係あるのかわからないのは俺だけ?
0104102NGNG
>>103
適当スマソ。リンク先見てないから。
言い訳だけど…
0105デフォルトの名無しさんNGNG
リンク先はブラクラだろ?
0106デフォルトの名無しさんNGNG
あれのどこがブラクラなの?
別になんともならんけど。
0107デフォルトの名無しさんNGNG
ageる
0108デフォルトの名無しさんNGNG
1の意図とは違って、後半良スレになってるよ(w
0109デフォルトの名無しさんNGNG
age
0110デフォルトの名無しさんNGNG
コンピューターの中に人間と同じ生命が誕生した場合、
電源OFFは殺人罪?
0111デフォルトの名無しさんNGNG
>>110
岩田が死んだとき、六本松も同じような意味の発言をしてたな
0112デフォルトの名無しさんNGNG
>>111
何をやってる(た)人? > 岩田&六本松
0113デフォルトの名無しさんNGNG
>>112
公務員と備品
0114デフォルトの名無しさんNGNG
>>113
http://www.google.com/search?q=%b4%e4%c5%c4+%b8%f8%cc%b3%b0%f7+%cf%bb%cb%dc%be%be+%c8%f7%c9%ca&hl=ja&lr=lang_ja&ie=euc-jp&oe=euc-jp
見つかりませんですた。(;´Д`)
0115デフォルトの名無しさんNGNG
>>112
>111はネタ発言なので真に受けないように。
エクセルサーガで検索すれ。
0116デフォルトの名無しさんNGNG
ネイティブコードでの実行はすぐ暴走しそうなので、
BASICの中間コードではどうだろう?

と言ってみるテスト。
0117デフォルトの名無しさんNGNG
>>116
デバッガやVMWareのような仕組みを用意すれば大丈夫だべ
0118NNGNG
VM作って世界を制限しないと怖いね。
VMの中か外にゲームマスターみたいに常にスレッドを監視している
スレッドがいて、暴走を確認したら、そのスレッドを止めるとか。。。

制限を作ると可能性も減ってしまうので面白味に欠けるけど...。
■ このスレッドは過去ログ倉庫に格納されています