受賞者と題名

各研究の概要

実数値遺伝的アルゴリズムを用いた多関節モデルの前進動作獲得

濱口大樹

近年の開発技術の進歩により,ロボットが我々にとって身近なものとなりつつある。しかし,多くのロボットは精密な構造設計と行動動作計算の元で成り立っており,設計者の意図しない状況にロボットが陥った場合,正常な動作を行えない。またロボットの構造は様々であり,それら構造に合わせた行動の設計には労力がかかる。この問題を解決する手段の1つとしてロボットの自律学習がある。ロボットの自律学習とは,ロボットが自身のおかれた環境や状況から必要な動作を獲得していくことである。本研究では自身の構造や動作する環境に拘束されない方策として実数値遺伝的アルゴリズムを用いることで,多関節モデルの自律的な前進動作獲得を目指す。

自然界に目を向けると,我々の住む世界には様々な生物が存在している。生物に設計者はいないが,独自の身体構造や,生息する環境に適した動作を獲得している。これらの構造や能力は,彼らが太古から遺伝的に継承し,その多くは生まれた時から先天的に保持している特徴である。このように生物が自然環境に柔軟に適応し,必要な能力を継承・獲得していくプロセスは,先述の自身の構造や動作する環境に拘束されない方策として利用することができる。このような生物の進化をアルゴリズム化したものの1つに遺伝的アルゴリズムがある。遺伝的アルゴリズムはダーウィンの進化論に基づく進化的計算手法であり,個体集団に対し,淘汰や交叉,突然変異といった操作を加え,世代を重ねることで良質な遺伝子を持つ個体を残すことができる。

遺伝的アルゴリズムの実装では,評価関数と幾つかのパラメータ設定が,そのパフォーマンスに大きな影響を与えるため重要視されている。本研究では特に遺伝子を実数値でコーディングする実数値遺伝的アルゴリズムを用いて,多関節モデルに前進動作を獲得させるとともに,一部のパラメータに注目し,その有効性とパフォーマンスについて実験・考察した。ここで,多関節モデルの実装には物理エンジンであるOpenDynamicsEngineによる計算機シミュレータを用いた。

Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS

グラフと平面のタイル張り

中島くる実

本研究では,グラフ理論についての用語や基本事項を確認したうえで,様々な公式・定理の証明に取り組んだ。研究発表では,その公式・定理を複数含む総合的な問題の証明を紹介した。

グラフ理論におけるグラフとは,普段使用するような縦軸,横軸からなるものなどとはまったく関係が無い。指定された有限個の点(頂点)の集合と,頂点間を結ぶいくつかの線分または曲線孤(辺)から構成された図形をグラフという。本論文では,まず基本事項として,閉路(一筆書き),連結グラフ,握手補題(頂点の次数と辺の関係),オイラーの公式などを具体例を多く用いて説明している。また,グラフ理論の公式・定理を使い,平面のタイル張り(平面を図形で隙間なくうめること)について,証明・説明している。

研究発表で紹介した問題は,「一種類の凸多角形(くぼみのない多角形)を平面に敷き詰めるとしたら,何角形までなら可能か。」というものである。まず正三角形・正方形・正六角形は平面を敷き詰められる。ゆえに,凸三角形・凸四角形・凸六角形の場合については,敷き詰め可能である。凸五角形のときは,一見不可能に見えるが,実は可能である。では,凸七角形ではどうであろうか。次のような定理がある。

「凸n角形の一種類のタイルを平面に敷き詰めることができるなら,n≦6である。」

 この証明のアイデアを,わかりやすく紹介した。

私にとってグラフ理論は,大学まで数学を勉強してきても十分に学ぶ機会がなかった,馴染みのない分野であった。そのため,基本的なルールを理解するのに時間がかかった。しかし,勉強していくうちに,とてもユニークでおもしろいものだとわかった。予備知識が少なくてもパズルのように気軽に取り組める内容である。今後はグラフ理論が中学生・高校生にも馴染み深い存在になることを望み,私自身もさらに勉強していこうと考えている。

Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS

Web アプリケーションにおけるリアルタイム処理について

橋本直人

昨今のIT関連の進歩・発展・成長はめざましいものがある。端末や回線が普及し,発展したことで,あらゆる場所でのインターネットとの接続が可能となった。しかし技術の発展に伴い,従来のものとの間に,マシンスペックや通信速度,安定性に格差が生じてしまっている。

このような格差がある場合,リアルタイムであることが重視されるものを扱うことが困難である。たとえば,オンライン上における早押しクイズゲームなどがそれにあたる。本研究では,そのような格差がある場合においても公平なゲームの運営ができるような方法を,実際にwebアプリケーションとしてクイズゲームを開発して検討した。

早押し形式のクイズを離れた地点で行う場合,実際に早押しボタンが押された時間の順序である必要はない。重要なのは,Webブラウザによる出題開始時点から,プレイヤーによる早押しボタンが押されるまでの経過時間である。そのため,それぞれのプレイヤーの経過時間を得ることができれば,それらを比べることで早押しにおける優劣を決定することができる。

経過時間を求める方法として,Webブラウザが出題ページをサーバ側に要求したときの時刻を得る。これを時刻Aとする。次に,早押しボタンが押された時の時刻を得る。これを時刻Bとする。時刻Bから時刻Aを減算したものを経過時間としてサーバ側のデータベースに送ることで,誰が一番早いかを判定することができた。

実験を行って確認したところ,内部タイマーを持たせるなどの他の方法よりも精度が高く,ブラウザの種類における差も発生しない。また処理落ちなどによる誤差発生の可能性も減らすことができた。

Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS

ルービックキューブ解法 Web 掲示板

早田大輝

ルービックキューブは,立方体が3×3×3に27個積み重なってできている。適当に回転させ,色の配置をばらばらにしてから再び各面の色の配置を元の状態に戻すという立体的なパズルゲームである。元の状態に戻すには6面完成法といわれるいくつかの方法を用いることが多いようだ。

本研究で作成したWebアプリケーションは,ルービックキューブのさまざまな6面完成法を知ることができることと,人が実際に6面完成法を利用して元の状態に戻せるように支援することを目的としている。Webページに3Dアニメーションで作成したルービックキューブを埋め込んで,これをマウスで操作して6面完成の手順を保存する。保存先にはデータベースを用いている。このWebアプリケーションはPCを用いて自動で解かせた6面完成法と違い,実際に人が6面完成させた手順が見ることができるので理解には適している。さらに,人によって6面完成させる手順が違うので様々な6面完成法を知ることができる。

Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS

Java による文字五目並べゲームの作成

梅元謙太

本研究で作成したゲームは既存の五目並べゲームに自然言語を付与して単語を作成するものである。五目並べゲームとは,2人で行うボードゲームの一種で,盤上に交互に駒を置いていき先に駒を直線状(縦,横,斜め)に5個並べることを競うものである。それに対して文字五目並べゲームは,盤上に置く駒に文字情報を追加し,直線状に並べた駒の文字が単語になっていれば勝利するものである。

本題作成の手順としては,まず,五目並べゲームの作成を行った。これは文字五目並べゲームが五目並べゲームを継承しているからである。その基盤をもとに文字情報を扱えるように改良し,単語を判定させるために単語辞書をリンクさせた。単語辞書には日本語の形態素解析に使用される茶筌(Chasen)の辞書を利用して単語辞書を作成している。また,対戦形式が人対人では面白みにかけるので,対戦相手としてプログラム内にCPU(コンピュータ)を組み込むことにした。CPUの思考プログラムには将棋やチェスの思考にも使われるミニマックス法と呼ばれる手法を取り入れている。この手法は局面を先読みすることで最適な手を考えるものである。さらには,それをより効率よくするアルファ・ベータ法という手法を使い効率化に成功し,思考時間の短縮に成功した。

結果として五目並べゲームの作成に成功した。CPUは3段階のレベルを設定し選択して,遊ぶことができる。文字五目並べゲームでは先読み時の処理速度が問題となった。

今後の課題として,CPUの思考時間の更なる短縮がある。先読みする時の探索する局面の多さと照らし合わせる辞書の単語数に問題があるので,解決策が必要である。

Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS

格子ガスオートマトンによる流体計算

廣憲祐

格子ガスオートマトンとは,複雑な現象を簡単な規則で扱える計算モデルである。 その,計算モデルの原理とは空間をセルという領域に分割して,セルの状態を離散的に変化させることである。 この格子ガスオートマトンは,現代の科学技術をもってしても解明されにくいとされている気象変動や脳の機能などのさまざまな複雑な現象の解析に使用されている。

本研究ではこの格子ガスオートマトンを用いて流体を解析する。特に流体における渦について再現した。格子ガスオートマトンを使用して,流体における渦を表現するには,流体という性質や特徴を最大限に活かす必要がある。また,二次元の格子ガスオートマトンを使用する。この格子ガスオートマトンは,無限に広がる方眼紙を考え,一つのマスをセルとして扱う。各セルは何種類かの移動可能な粒子の有無を考える内部状態がある。この内部状態は時間が進むにつれてある規則に従い変化していく。また,渦を発生させるために障害物を置く必要がある。この障害物に粒子がぶつかると,どのように粒子が跳ね返るかということを設定した。以上のこと踏まえて,渦が発生させられるような状況を2つ考えた。1つは障害物を移動させてその下流に出来た渦を考察する。もう一つは粒子を流して,障害物の下流にできた渦を考察する。

2つの状況より実験を行った結果,単純な格子ガスオートマトンの規則から渦を表現することができた。また,より複雑な流体の運動を解析するためにあたって,精密に障害物の条件を設定したり,格子ガスオートマトンの規則を増やしたりするなどの課題が残った。

Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS

発癌プロセスの Moran 過程による数理的考察

森本茂義

現在,3人に1人の割合で癌という病気が原因で亡くなっている。癌は複数の遺伝子異常により発生する。遺伝子が機能を失い増殖を繰り返すことで起こる病気である。

本研究はMoran過程を基礎にして,発癌の始まりである癌抑制遺伝子(TSG)が機能を失う過程について理論的な考察を行った。Moran過程はN個の正常細胞集団に1個の突然変異細胞が出現した時,単位時間毎に繁殖と除去が同時に行われ常に細胞数を一定に保つような確率過程である。この確率過程によって最終的に突然変異細胞が集団を占める確率が与えられる。

癌細胞は対立遺伝子であるTSGが両方機能を喪失すると出現する。癌細胞には染色体不安定(CIN)という細胞分裂の時,染色体が正しく配分されない現象が生じている。CINへの変異細胞は,CIN遺伝子の不活性化による。これらの仮定をもとに,TSGが機能を失い発癌が始まる確率をMoran過程を適用した微分方程式を用いてCINが正常細胞で生じる変異なのか,癌細胞で生じる変異なのかを検討する。

次に大腸癌について考察する。大腸には約千万個の陰窩が存在している。前述の微分方程式を用いて発癌を始めた陰窩の期待値について数値計算を行った。その結果,大腸内で発癌している陰窩は何千というオーダーであり,高齢であるほど発癌を始める陰窩の比率は高くなる。よって高齢者は癌になる危険性が高いと考えるのは理論的にも妥当である。

Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS

瓶の共鳴の Freefem++ による解析

平田大登

瓶の口に息を吹きかけると「ボー」という音が鳴る。この共鳴周波数は管の長さとは関係なく,十分に長い音波の波長で振動して共鳴が起こる。本研究では,この物理的現象をモデル化し,Freefem++によるコンピュータ・シミュレーションにて解析する。

Freefem++とは偏微分方程式を記述し,有限要素法を用いて数値的に解くためのソフトである。 このソフトは,領域の形状から自動的にメッシュを作成される利点があるため,メッシュを細かく分割することで精度の高い結果を得ることができる。 このソフトを用いて,対象の瓶の共鳴周波数を測定した上で,その物理的現象をモデル化した。 さらに瓶の音が鳴る原理には気柱共鳴とヘルムホルツ共鳴の二つが考えられるため,同様のシミュレーションを行い,瓶の共鳴との違いを考察した。

シミュレーションの結果,実際の瓶の共鳴周波数とシミュレーションから得られた共鳴周波数は近似値となった。 また,気柱とヘルムホルツ共鳴器も計算により求めた共鳴周波数と近似値を得られたことから,認識できる範囲の誤差でシミュレーションを行うことができたと考えられる。 このシミュレーションにより,瓶の共鳴はヘルムホルツ共鳴であることがわかった。さらに対象の閉端から開端にかけての形状変化が,音圧の増減に影響していることが考えられた。

Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS

イラストロジックの人間的解法プログラムの拡張 Part 1

渡辺正樹

本研究は,人間が解くときの解法手順を細かく再現した手法を用いてパズルを解読した先行研究のプログラムを,新しい手法の導入により拡張していき,イラストロジックを人間が解くときに考える解法を用いてより多くの問題を解くにはどのような手法が必要か調べるというものである。本研究ではこれまで解けていなかった問題に着目し,まずはパズルを自分の頭で考えて解いてみて,その手順やヒントへの対応付けを一般化し,マス確定手法の手法101-Aと手法103-A,対応付け手法の手法105-Bの3つを新しく導入した。なお,本研究は共同研究であり,共同研究者が取り入れた新しい手法を互いに共有する形で行った。

実験で用いた問題は先行研究と同じものを使用した。先行研究において,研究者の判断ですべての手法を人間が考える際に簡単であると思われるものから順に並べた配列の後ろに,手法101-Aのみを追加した配列1,手法103-Aのみを追加した配列2,手法105-Bのみを追加した配列3,3つすべてを追加した配列4,本研究と共同研究で発見したすべての手法を追加した配列5の5種類を使い,確定できたマス数の割合(確定率)と,完答できた問題数の割合(完答率)を調べた。

これらの結果から,本研究と共同研究によって導入された手法をすべて用いると,全体的に確定率・完答率ともに大幅に進歩し,Lv1の問題のような比較的簡単な問題は全て完答できるようになるが,Lv2,Lv3,Lv4の問題のように中〜高レベルの問題を完答するためにはまだ足りない手法があることが分かった。

Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS

多成分相分離のモンテカルロシミュレーション

河原良太

水と油をかき混ぜても,そのまま放置しておくと再び分離してしまう。このように混じり合っている2 成分溶液や多成分溶液がそれぞれの(純)物質の相に分かれていく現象のことを相分離と呼ぶ。

本研究では相分離現象をKawasaki dynamics と呼ばれる以下の手順で実験を行った。まず分子をランダムに一つ選び,その分子と隣接する分子をランダムにもう一つ選ぶ。この時,各分子は隣接する分子間でエネルギーを持っているのでそのエネルギーを計算する。また,その分子を入れ替えたときのエネルギーも同様に計算し,二つのエネルギー差を計算する。各分子はエネルギーが小さいほうが安定するので小さくなるように分子を入れ替えていく。また,そうならなくても,ある程度の確率で入れ替えがおきるようにし,この時の相分離の様子を考察する。

この研究の目的は2成分相分離だと考えることが出来ない成分同士の斥力と引力の値を変えることで変わる多成分相分離の様子を考察することである。また様々な種類の相分離現象を考えることが出来るのでアプローチしていく。実験の結果より値を変えるだけで様々な相分離のパターンが実現できた。

さらに,正方格子では異方性が見られたため正方格子と同様な数値実験を六角格子でも行った。六角格子では正方格子に比べ,隣接する分子の数が増えるためステップ数は多くかかったが実行結果の数値やグラフなどを見ると異方性が少なくなった実験結果が得られた。このことから,六角格子の場合も正方格子の場合と同じように相分離現象が起きているといえる。

Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS Highslide JS

数理情報学科トップ
Last Modified: Saturday, 18-Mar-2017 16:20:33 JST