N2i ジャーナル

名古屋と東京を拠点に活動するITベンチャー N2i がIT・ビジネス情報をお届けします

名古屋と東京を拠点に活動するITベンチャーN2iがIT・ビジネス情報をお届けします

フロッキングアルゴリズムで「群知能」のシミュレーションをしてみた

f:id:n2i-wa:20180613230933j:plain

 

「群知能」という言葉を聞いたことがありますか?

群知能とは、単純な要素が協調して秩序ある行動を生み出し、個々の能力の和を超える結果が得られること。

群知能とは - Weblio辞書

 

自然界でいえば、蟻の行列や、イワシが群れを作って自分たちを大きく見せること、そして鳥のV字飛行などが典型的な群知能といえるそうです。 

「群知能」の研究から、社会を考える〜栗原聡・電気通信大学教授 | Top Researchers

 

これが、人工知能の研究に応用されています。個としては局所的な行動しかできないものが、群れを成すとまるで意思があるかのように高度に振る舞うことができるのだそうです。

 

今回のブログでは、「フロッキングアルゴリズム」というプログラムを用いて、群知能のシミュレーションをしてみます。

 

フロッキングアルゴリズムとは

フロッキングアルゴリズムとは、それぞれの個体が「結合」「整列」「分離」の3つのルールに基づいて振る舞うアルゴリズムです。

1. 結合とは、個体の周り(または視野内)に他の個体が近づいた時、「群れ」を形成し、その中心に向かって進みます。

2. 整列とは、近くの個体同士で平均的な力や、方向を向きます。

3. 分離とは、近くの個体同士でぶつからないように離れ、適度な距離を保ちます。

 

やってみた

実際に動かしてみました。 

 

www.youtube.com

 

お互いがぶつからないように適度な距離を取りつつ、群れをなしてプレイヤーに向かって泳いでいきます。

また、群れから離脱したイワシはそのまま一人で泳ぎ、新たに群れに属そうとするのが分かります。

  

群れでついてくるのが楽しいです。

 

--------------------------------------------------

N2iでは、企業向け人工知能の受託開発や

人工知能を使ったビックデータ解析を行っています。

【ご相談・お問い合わせこちら

--------------------------------------------------

 

 

Powered by はてなブログ