研究内容の紹介

主に研究しているのは分散アルゴリズム理論です.
これに加えてこれからは、 ZDDの構築やSATソルバを使った応用や、 ワンボードマイコンを使った応用 などもやってゆこうか考え中です.

目次

キーワード: 分散アルゴリズム, 分散計算論, センサーネットワーク, 自己安定システム, コーラム(quorum)システム, Peer-to-Peer (P2P), モデル検証, 計算機プログラミング教育, 教育工学,


分散アルゴリズム理論

分散アルゴリズム理論 (Distributed Algorithm Theory) の研究を行なうテーマです。
ネットワークで結ばれた計算機が協調してある問題を解くには、 どのようにすればより効率よく解けるのか、 最低限どのくらいの計算の手間がかかるのか、 そもそもその問題は解くことができるのか、 といったことを理論的に明らかにして行く研究です。

分散アルゴリズムとは

研究成果(その1)
自己安定システムの研究:

研究成果(その2):
コーラムシステムの研究:

研究成果(その3):
Peer-to-Peer ファイル共有システムの研究 (コーラムを使いしかも自己安定):


センサーネットワークシステムソフトウエア

センサーと IEEE 802.15.4 無線通信デバイスをマイコンに 接続した超小型CPUボードを多数配置し、 様々な環境測定や異常監視をおこなうシステムに関する研究です。 多数のノードを無造作に配置し、 電池ぎれのノードが出てきても正しく動作させるには、 自己安定、自己修復、自己組織化といった Self-* 性をシステムソフトウエアに持たせることが必須となります。

本研究テーマでは、長年にわたる 分散アルゴリズム理論および自己安定分散システム研究の成果を 実システムに応用すべく、システム開発を進めています。

研究成果


教育工学

計算機科学のオンライン学習用ソフトウエア (Computer Assisted Learning System) の研究、とくにプログラミングを中心とする教育のための 学習支援ソフトウエアの開発研究しています。

研究成果(その1)
アルゴリズムの学習を、誤りの発見に基づいて学ぶシステムの提案。 正しいソースコードに対して自動的に教育上有用な誤りを自動挿入をおこなう。

研究成果(その2)
正しい並行プログラムを書くために、 誤りを検知し、それを提示することで、学習を支援するシステム。 誤りの検知は、モデル検証系 (model checking system) を用いて行なう。 また、逐次的アルゴリズムでは、 ホア論理を利用してプログラムの正しさを論理的に理解し、 最終的には、ループ不変量などを考えて、 自力で正しいプログラムを書けるように 学習を支援するシステムを構築しています。


VFlib / TeX-Guy プロジェクト

FIG

様々なフォーマットのフォントを 統一的な API で利用可能とするフォントラスタライザのライブラリ、 ならびに、 組版システム TeX 用 DVI ファイルのプリンタドライバ/プレビューア パッケージ TeX-Guy を開発しています。

学術的な内容よりも、 優れたソフトウエアの開発が最優先のプロジェクトです。 成果ソフトウエアは全てオープンソースのフリーソフトウエアとして 無料で公開しています。

(面倒臭くなったのでこのプロジェクトはもうやってません。 一部のコード(VirtualFontドライバ)がFreeTypeプロジェクトに 取り込まれることになるみたいです.)

VFlib

フォントファイルといっても、 TrueType, Type1, PCF, BDF, PK など、様々なデータ形式のものが存在します。 それぞれに独自の特徴を持ち、互いに互換性がありません。 様々なデータ形式のフォントを混在して利用可能とする ソフトウエアを作成するのは容易ではありません。 というのも、オペーレーティングシステムやウインドウシステムで サポートされていないデータ形式のフォントを利用可能とするには、 アプリケーションソフトウエアごとにフォントファイルを読み出す ルーチンをプログラマが自分で書かないといけないからです。
VFlib はさまざまなデータ形式のフォントを 混在して利用できるようにした、C 言語でのライブラリです。 どのようなデータ形式フォントであっても フォントの利用方法は同じとなるように、 C 言語の関数呼び出し形式 (API) を設計しているため、 フォントファイルのデータ形式を全く意識せずに、 フォントを利用可能にしています。 また、オペーレーティングシステムやウインドウシステムが 提供するフォント機能は一切使用しない設計と実装にしているため、 様々な動作環境(オペーレティングシステム/ウインドウシステム)で 動作可能としています。

TeX-Guy

TeX の DVI ファイルは組版結果のファイルであって文字の画像は含まれていません。 そのため、プリンタに印字するには、 フォント名、文字コード、位置情報から文字の画像をフォントファイルから取出し、 文字画像を必要な大きさに拡大/縮小し、 プリンタの制御コードに合わせて文字画像をプリンタに送信、 ページの印字を行なわないと行けません。
プリンタごとに制御コード体系が異るし、画面にも表示できれば便利なのですが、 ソフトウエア一つ一つで上記の動作を行なうプログラムを個別作成するのは 大変です。 そこで、出力機器(プリンタ/ウインドウ/画像ファイルなど) を制御するプログラムコードを追加するだけで TeX 文書の表示や印刷ができるようにするものが TeX-Guy パッケージの中心である DVIlib です。
DVIlib は機器非依存の DVI ファイル解釈システムで、 C 言語プログラムのライブラリとして設計/実装しています。 TeX-Guy パッケージには DVIlib のほか、 X Window System 上でのプレビューアを数種類、 いくつかのプリンタドライバや画像ファイル変換ソフトウエアが含まれています。

 

角川裕次