本研究の目的は、組合せ最適化問題に対するアルゴリズムを系統的に構成する手法を与えることである。これを目指し、前年度までは比較的理論的な立場から研究を行ってきた。今年度では、専門家以外にも利用できる形で理論的な成果を提示すること、具体的には、自動的に効率の良いプログラムを導出するシステムを構築することに主に力を注いだ。 今年度の研究は主に2種類に分類できる。ひとつは動的計画法アルゴリズムの導出であり、もう一つは分割統治法アルゴリズムの導出である。 前者に関しては、最適な列を求めるのに有用なライブラリを提案した。このライブラリには、候補を全生成しその中から最適なものを選ぶ、という自明な問題仕様を記述するのに便利な関数が含まれている。そして、このライブラリを用いて記述されたプログラムは、動的計画法アルゴリズムに基づいた効率の良いプログラムへとコンパイル時に自動的に改善される。このライブラリの設計と実現は国際シンポジウムであるAPLAS2009に採録された。 後者に関しては、ユーザから与えられた逐次プログラムを元に分割統治法に基づいた並列プログラムを自動的に生成する手法を提案した。既存の自動並列化手法ではユーザは並列化器に比較的多くの情報を入力する必要があったのに対し、より少ない入力から自動的に並列プログラムを得る手法を開発した。これは日本ソフトウェア科学会で発表を行った。また、あうクラスの関数プログラムが同様の手法で自動的に並列化できることも示した。この成果はプログラミングおよびプログラミング言語ワークショップに採録された。
|