background preloader

Python

Facebook Twitter

PyUnit. 集団的知性. 都市や文明といったものも、多くの「個」により形成される集団的知性と言う見方が出来る 集団的知性(しゅうだんてきちせい、英語:Collective Intelligence、CI)は、多くの個人の協力と競争の中から、その集団自体に知能、精神が存在するかのように見える知性である。 Peter Russell(1983年)、Tom Atlee(1993年)、Howard Bloom(1995年)、Francis Heylighen(1995年)、ダグラス・エンゲルバート、Cliff Joslyn、Ron Dembo、Gottfried Mayer-Kress(2003年)らが理論を構築した。 集団的知性は、細菌、動物、人間、コンピュータなど様々な集団の、意思決定の過程で発生する。 集団的知性の研究は、社会学、計算機科学、集団行動の研究[1]などに属する。 Tom Atlee らは、Howard Bloom が「グループIQ」と呼んだものから一歩進み、人間の集団的知性に研究の焦点をあてている。 集団的知性研究のパイオニアである George Por は、集団的知性現象を「協調と革新を通してより高次の複雑な思考、問題解決、統合を勝ち取りえる、人類コミュニティの能力」と定義している[2]。 一般的概念[編集] 集合知 集合知には、collective intelligence, collective knowledge, wisdom of crowdsなどの異なる英語が対応する。 Howard Bloom Howard Bloom は、35億年前の祖先である細菌の時代から現代まで、生命が進化の過程で発生した集団的知性の経過を描いた[3]。 Tom Atlee と George Por Atlee と Por の観点からすれば、集団的知性の力を最大限に発揮できるかどうかは、その組織の個々の構成員が発する、潜在的に有益な意見やアイデアを、「黄金の示唆」として組織全体が積極的に受け入れる能力を持っているかどうかにかかっている。

「黄金の示唆」を拾い上げる手段として、様々な投票・アンケートを用い知識の集積を図ることは、構成員から多くのユニークな観点を集めることができ有用である。 その他 集団的知性の他の専門家は、Atlee や Por とは違った見方をしている。 歴史[編集] 集団的知性は創始者の指針の増幅である。

GAE

なんでも作っちゃう、かも。 C言語でコルーチン(co-routine) C言語でコルーチンを実装してみる。 コルーチン(co-routine)とはプログラミングの構造の一種。 サブルーチンがエントリーからリターンまでを一つの処理単位とするのに対し、コルーチンはいったん処理を中断した後、続きから処理を再開できる。 接頭辞co-は協調を意味するが、複数のコルーチンが中断/継続により協調動作を行う。 組み込みシステムではよく、複数の処理を同時に行う必要がある。 そのような場合、コルーチンが使えれば、処理の記述が楽に行える。 Switch-caseあるいは関数テーブルなどを駆使すれば、実現することは可能だが、見通しがわるくなる。 コルーチンをサポートする言語にはModula-2、Simula、Icon、Lua、C#がある。 組み込みシステムにおいても上記のことは言えるが、小規模なシステムの場合、リソースの制約上、処理1つ1つにタスクを割り当てることができず、1つのタスクで複数の処理を実行するケースも存在する。 今回、紹介するコルーチンはswitch-caseを巧みに利用して実現されている。

Void helloworld(void){ co_begin; printf("hello world!! Printf("hi world! Printf("hi again. printf("hi\n"); co_yield(); printf(":)\n"); co_end;}main(){ helloworld(); helloworld(); helloworld(); helloworld(); helloworld();} 実行結果は次の通り。 Hello world!! 見慣れないキーワードが三つ。 #define co_begin \ static int __state = 0; \ switch(__state){ \ case 0: #define co_end \ __state = __LINE__; \ } うーん。 次回は、このコルーチンマクロをもう少し使い易く、ローカル変数を使えるようにしてみる。 コルーチン - Wik.

Graphic

Django. Erlang で開発されている商用分散 KVS Riak を使ってみた - Twisted Mind. 絶賛書きかけ Riak とは Riak は商用分散 KVS の一つです。 Basho Technology が開発を行っておりオープンソースで公開されています。 商用版もあり、一部機能が追加されています。 Riak をインストールする(パッケージ編) Riak をインストールする(ソースコード編) Mac OS X 10.6.7 の Erlang R14B02 64bit で確認済み 最新版は 0.14.1 ですが、ここは git/master ブランチをチェックアウトして使ってみましょう。 チェックアウトしてビルドする % git clone Cloning into riak... remote: Counting objects: 10820, done. remote: Compressing objects: 100% (3476/3476), done. remote: Total 10820 (delta 7223), reused 10468 (delta 7020) Receiving objects: 100% (10820/10820), 8.83 MiB | 1.22 MiB/s, done.

Riak の起動、いつでも落とせるようにコンソールモードで % . これで Riak は起動しました Riak Erlang Client Riak Python Client (brew 編) Riak Python Client % brew install protobuf % easy_install -ZU protobuf % easy_install -ZU riak protobuf をインストールしておかないと protobuf が入らない可能性があります。 Python Client から使ってみる riak-python-client で適当にバケットを作ってデータを入れてみる.

Reference

CodingBat.