
皆さん、ご挨拶、集団の挨拶、明けましておめでとうございます! ほら!
少し前に、私は
カットの下-多くの写真と小さなテキスト。 プログラムの説明といくつかの実験。
結論は簡単です-限られたスペース(500x500ピクセル)でバクテリアが生きています。 各細菌は、青または赤の集団のメンバーシップに応じて、白の背景に青または赤のピクセルで表されます。 すぐにここの色が純粋に装飾的なキャラクターを演じることを予約してください。 赤いバクテリアはあたかも青いバクテリアが存在しないかのように生き、その逆も同様です。

細菌自体は原始的です。 ランダムな方向にクリープし、速度ベクトルをランダムにわずかに変化させます。
ランダムな期間の後、バクテリアは2つのバクテリアに分割されますが、「子供」の速度はそれらを生成したバクテリアから受け継がれます(原始的な遺伝子導入)。
多くのバクテリアが一箇所に蓄積すると、死に始めます(食物不足の模倣)。
アニメーションの前のフレームが消去されず、古いフレームの上に新しいフレームが描画される場合、プログラムにはモード(トレースを残す)があります。 これにより、バクテリアが移動するルートを観察できます。 これは、あるバクテリアの動きとそれに続く分裂の様子です。

しかし、バクテリアの生活は、私たちがいなければ、美しいものになるでしょう-研究と実験を切望する科学者たち。 右側には、ペトリ皿の生活に影響を与えるいくつかのツールがあります。
それらのすべて、それは直感的に私には思えますが、念のために:
最初に、最初からやり直して、すべての細菌を殺すことができます。

バクテリアが落ち始めるように、培地の流れをある方向に設定できます。

バクテリアは、まるでトイレに排出されたかのように、渦巻き状に渦を巻くことができます。

バクテリアをマウスクリックから飛び散らせることができます:

また、マウスをクリックするだけで、新しいバクテリアを一度に1つずつ作成できます。

時間の流れの速度を制御、増加、減速、または完全に停止できます。

残念ながら、最適化により、このパラメーターを変更すると、最も近い細菌の数の計算が正確に機能しません。
よく知られている設定は、前のフレームを消去するかどうかです。

更新ボタンは、以前のすべてのフレームを一度消去します。
楽しい部分に到達する-実験
バクテリアをエリア全体に増殖させます。 ちなみに、人口数は下に表示されます。
次に、横にあまり強くない電流をオンにします。 細菌は「食物の不足」のために死ぬコーナーで取り壊され始めます。 しかし、流れに逆らって移動する細菌があることが判明するたびに。 それらの多くはありませんが、それらは悲惨なコーナーに取り壊されず、彼らはそれ自体が新しい条件に抵抗する人々を引き起こします。 しばらくすると、新しい人口が割り当てられた領域全体を占有し、その平均速度は現在の領域に向けられます。 したがって、すべてがまったく流れがないかのように見えます。
流れを止めます-バクテリアは反対方向に破壊され始めます。 しかし、再び「最強」が生き残ります...
したがって、新しい外部条件に慣れることについて話すことができます。 ただし、中毒性のアルゴリズムは最初は定められていませんでした。
バクテリアは、あまり強くない「渦巻き-トイレへの洗い流し」に慣れたり、逆に「トルネード」によるさまざまな方向への散乱に慣れたりすることさえできます。
おそらく、中毒、実際の生物の適応は、場合によっては同様の性質を持っています。 これらのメカニズムのおかげで、今では4本の腕と3本の目があります。
あるいは、人工知能の秘密は、群知能のシステムにあります。 すぐに見つけてください!
実際には、フラッシュプログラム自体:
VKontakte
VKに登録されていない場合:
こっち
PS
バクテリアの「知性」に触れていない人のために:あなたはただ夢を見て面白い絵を描くことができます:



PPS
このトピックを書く前に、似たようなトピックに関する一般的な情報を少し探しました。
ウィキペディアの群知能
実用的なビット:
Habréでのパーティクルスウォームのアルゴリズム
HabréのAntアルゴリズム
ウィキペディアのセルラーオートメーション
ご清聴ありがとうございました!
UPD
ソースを追加します。 FlashDevelop
コードが曲がっている理由は AS3を理解するために書いたが、非常に理解しやすい
ソースコード