受賞者と題名

各研究の概要

カロア群と代数方程式

石山泰顯

代数学の基本的な概念は群, 環, 体である. 群と体は19世紀, 代数方程式の解法を考える過程で誕生した

2次方程式に解の公式があるのはよく知られている. 式は複雑になるが3, 4次方程式にも解の公式はある. このとき, 解はもとの方程式の係数の四則演算とべき根によって表されている. このような操作のみで解が得られるとき方程式はべき根で解けるという.

これらの解法は16世紀にみつけられた. さらに, 5次以上の場合の研究もされたが, 19世紀にAbelによって一般の5次以上の代数方程式はべき根によって解けないことが示され, Galoisによって一般の代数方程式がべき根によって解けるための必要十分条件が示された.

このときGaloisは, 群と体という概念を考えることで代数方程式がべき根によって解けることとガロア群を結びつけ方程式の性質を明らかにした.

体とは四則演算が自由に行える集合であり, 有理数, 実数, 複素数などがそうである. L体で部分集合KもLの演算で体になるときLをKの拡大体といいL/Kと書く. L/Kが分離的かつ正規であるときガロア拡大という.

ガロア拡大があるときガロア群を考えることができる. ガロア群が可解群という特別な群になったとき方程式はべき根で解くことができ, 一般の5次以上の方程式では可解群にならずべき根で解くことはできない.

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

三群点数法を用いた献立提案システム

奥野裕之

本研究は、レシピサイトからレシピデータを取得し、取得したレシピを三群点数法と呼ばれる手法を用いて食材の栄養ごとに点数化し計算することで、栄養バランスの取れた献立を提案するシステムの作成を目的としている。

本システムは、利用者が「使いたい食材」と「使いたくない食材」について入力すると、使いたい食材をできるだけ多く含み、かつ栄養バランスのとれた献立が提案されるという仕様となっている。献立は、主食・主菜・副菜・汁物の4品を1セットとし、提案された4品のレシピの内の一つを選択することで、そのレシピで使用する食材のリスト、調理手順や一人前分の栄養の点数などが表示される。

本システムでは、レシピデータと栄養の点数データを使用している。レシピデータについては、レシピサイトであるクックパッドから取得した。また、栄養の点数データについては三群点数法に基づき計算を行い算出した。計算するにあたり、レシピに使われている食材が3色のどのグループに分類され、量(g)がどのくらいあるかについて判別する必要があった。そこで、カロリー計算サイトであるカロリーSlismから食材の分類、食材名、数量と重さの関係(トマト1個=165gなど)のリストを取得し、レシピデータと併用することで算出することができた。しかし、今回取得したレシピデータは一般のユーザーによって投稿されたレシピであり、食材名や数量の単位などの表現に決まった書き方はなく様々な表現が含まれていたので、食材の判別などがうまく行えず正しい点数が算出できないものもあった。

今後の課題として、様々な表現の含まれるデータに対応できるように一つの食品に対し複数の表現のデータを用意する必要があると考えられる。

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

遺伝的アルゴリズムによる人体モデルの動作獲得

木曽湧斗

遺伝的アルゴリズム(Genetic Algorithm:GA)とは最適解を近似的に探索する進化的アルゴリズムである。 生物の進化を模倣しアルゴリズム化したものであり、確率的な要素を用いて最適解を学習的に求める。 本研究ではGAを用いて物理演算エンシンODE(Open Dynamics Engine)で実装した人体モテルに 自律的な学習を行わせ動作を獲得していく。各関節を角度変化させることにより姿勢を変化させる。

GAでは与えられた問題に対する1つの解候補を1つの個体とする。 個体の持つ性質を遺伝子と考える。個体の集団では個体間に差異があれば異なる遺伝子を持っていることになる。 この差異により各個体が環境に適応しているかを評価し、選択や交叉、突然変異などの遺伝子操作を行う。 これを繰り返し世代を重ね、最終世代で最も環境に適している個体を解として出力する。 GAは最適化問題に有効であるが最適解に対して近似解を求めるに過ぎず、 必すしも最適解が出力されるアルゴリズムではない。

本研究では一つの遺伝子か人体モテルの一連の動作を決定する。 遺伝子情報は全て関節の角度の変化として構成される。 一連の動作には幾つかの姿勢変化があり、姿勢変化は人体の各関節の変化により表している。 したがって人体モテルの関節数、関節の角度ハターン、動作に必要な姿勢変化数の3つて遺伝子長が決まる。

1つ目の実験である寝返りの動作では、人体モテルの頭部の回転によって個体を評価する。 この実験では、早期の収束が見られ人体モテルでの寝返りの動作を獲得する事か出来た。

2つ目の実験である立ちあがり動作ては、人体モテルの頭部の座標位置を評価し適応度を計算する。 この実験では前半動作と後半動作の遺伝子を分けて獲得する。 最終的に、姿勢変化を終えた時に開脚状態で姿勢を維持する立ちあがりの動作を獲得できた。

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

3Dシェルピンスキーキャスケットの内部を歩く

近藤匠

フラクタルとは1975年にブノワ・マンデルブロが命名した自己相似性をもつ図形、構造のことであり、フラクタル図形には、コッホ曲線、シェルピンスキーのギャスケットなどがある。シェルピンスキーのギャスケットは基本的に正三角形に対して処理を行うが、これを正四面体に変更して処理を行うと三次元のシェルピンスキーのギャスケットを描くことができる。これを描くプログラムを作成し、そのプログラムによって三次元のシェルピンスキーのギャスケットを観察した。

三次元のシェルピンスキーのギャスケットを観察するために三次元空間内部の移動方法を考えた。三次元空間内の移動は平行移動と物体の回転で表現した。平行移動は上下左右の移動と拡大縮小を示し、物体の回転はプログラム上であらかじめ定められた方向ベクトルを軸にした回転を示している。

三次元のシェルピンスキーのギャスケットは段階が進んでいくと体積はどんどん減っていき、表面積は一定で、辺の長さの合計は増えていく。これを表面の色と辺の色を別々にして立体を描くことによって視覚的に確認した。最初は辺の長さの合計は小さく、体積は大きいので表面の色が見えやすいが、段階が進んでいくと辺の長さの合計は大きく、体積は小さくなるので辺の色が見えやすくなる。ただし、立体の角度を変えると見え方が変わり、真上から見ると辺の色が見えやすくなり、真下から見ると表面の色が見えやすくなる。

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

畳込みニューラルネットで抽出した画像特徴を用いたFace Verification

丈達生伍

本研究では、人物の画像から顔を識別する手法である Face Verification と呼ばれるものについて検討した。Face Verification とは、2つの顔の画像が同じ人同士のものか違う人同士のものかを識別する手法である。2つの顔画像の特徴量の間の距離を測り、あらかじめ定められた閾値より大きい値であれば違う人同士、さもなくば同じ人同士であると識別する。この手法は、2つの特徴の一方に既知の人物のデータ、もう一方に未知の人物のデータというペアを与えることで、その人物を特定する(または既知の誰でもないと判定する)のに使える。

さらに本研究では、同じ人同士の距離を小さく、違う人同士の距離を大きくするように特徴量を線形変換する手法を組み合わせて精度を向上させることも試みた。

この手法の性能を調べるために、LFW という、5749人の顔画像13233枚のデータセットを用いて、Face Verification の実験を行った。その結果、特徴量の線形変換無しでは識別率は90.8%となった。 特徴量の線形変換後は98.5%となった。

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

反転によって発見された定理たち

西真樹子

四ツ谷先生からシュタイナーの円環定理を教えていただき,その証明方法に興味をもち,反転について研究を始めた.

反転とは,O を中心とする半径r の円があるとき,円の内部または外部に点A があり,半直線OA 上に点A’をとり, OA・OA′=r2 をみたす点A′ を点A から求める変換のことをいう.このとき,A′ をA の反転像,基準に取った円O を反転円,O を反転の原点または中心という. 反転変換によって直線や円がどのようになるのか考察する.原点O を通る直線の反転像は,その直線自身であり,反転の中心を通らない一般の円の反転像はO を通らない円である.

反転は古くからあるものであり, この反転変換によって, 新たな定理がいくつも発見されている.有名なのがシュタイナーによって発表された"シュタイナーの円環"というものである.また,ミケルがこの定理をどのような手法を使ってたどり着いたのか舞台裏を知ろうと研究を重ねた結果新しく発見したのが"ミケルの6円定理"である.

シュタイナーの円環について大小2つの定円の間に円が敷き詰められるかどうかは反転前の同心円から求められる.また,証明については反転によって2つの円が同心円に移されるとすると,反転像の座標から実数解は一つに定まり,適当な反転によって大小2つの定円は同心円に移ることがわかる.

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

移動式ロボットRobotino(R)の制御プログラムの開発 ー回転スキーロボットー

深澤顕

RobotinoはドイツFESTO社によって製造発売されている,四方八方への移動が可能な移動式ロボットである.私は人間にできることをロボットの制御により実現させたいと考え, スキー競技を参考に課題を設定した.

この課題は大きく以下の3つのポイントに分けられる

  1. 1.赤色,青色のポールの検出
  2. 2.ポールの回避
  3. 3.並立ポールの間の通過

赤色,青色のポールの検出は,Robotinoに装備されているカメラからの出力画像を元に検出を行っている.あらかじめ赤色,青色に関する色彩,彩度,明度のデータを用意し,カメラ画像中からこのデータに一致する部分が検出されたとき,その部分を白色,それ以外の部分を黒色に変換して出力している.さらにその白黒の画像から白い部分の大きさ,位置等の必要な情報を抜き出し,Robotinoの制御に使用している.

ポールの回避は主にRobotinoの周囲に装備された距離センサを使用した.距離センサは電圧を出力し,物体との距離が近いほどこの値は大きくなる.ここでは距離センサの反応の有無によりポールとRobotinoの位置の把握を行い,また,センサの出力によりポールの回避の制御を行っている.

並立ポールの間の通過は,まず,2つのポールの中心にRobotinoを移動させる必要がある.そのために2つのポールそれぞれの位置情報を抜き出し,その値から2本のポールの中心の位置を求め,その値へ向かうようRobotinoの制御を行った.ポール接近後は前方,側面の左右の距離センサの出力値から微調整を行いポールの間を通過させ,最後に後方の距離センサの反応の有無からポールの通過判定とプログラムの終了を行っている.

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

粒子モデルとセルオートマトンを融合したエスカレーターシミュレーション

山岡礼央

エスカレーターに乗っている人は、エスカレーターを歩くことができるようにステップの右側をあけている。右側を空けて歩くのと、右側を空けずに乗るのと、どちらの輸送効率がいいのかという疑問を感じていた。ロンドンでエスカレーターに乗る人の計算機シミュレーションが行われており、ステップの両側を空けないほうの輸送効率が良いとされている。しかし、このシミュレーションは、現実的ではない点があると感じた。

本研究では、より現実的な行動を実現するために、エスカレーターの乗り場へ向かう人とエスカレーターに乗る人のシミュレーションを連動させて行った。歩行者の行動を再現するために、歩行者の人数、位置、速度、移動方法について考えた。人数を増やすことにより乗り場に到着するまでの一人あたりの平均時間や人の動きを観察した。

次にセルオートマトンを用いてエスカレーターに乗る人を表現した。セルの状態を変化させるための条件を変えることで、エスカレーターにどう乗ると輸送効率が良いのかを測定した。乗り場にいる人がステップに乗る頻度、エスカレーターに乗る人と前の人との間隔を決めることで、より現実的な動きを表現した。

実験結果より、輸送効率はステップの右側において、前の人との間隔を1ステップ空けて歩くことを条件としたシミュレーションが一番良いとなったが、あまり現実的ではない。2番目は両側を空けずにエスカレーターに乗る条件としたシミュレーションとなった。よって本研究では、両側を空けずにエスカレーターに乗るときの輸送効率が高いことを確認した。

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

Last Modified: Tuesday, 16-May-2017 16:02:13 JST