ネットワーク学習支援ソフトの提案
文教大学
情報学部 経営情報学科
98P21161 村上 真紀
1章 はじめに
1.1 研究動機
私は大学2年の時に、「オペレーションズ・リサーチ」(以下OR)という講義を履修した。ORを学ぶうちに、「ネットワーク」は、様々な現実社会のシステムを表現するのに優れており、問題解決手法のひとつとして重要な役割を果たす事が分かった。しかし、講義でネットワークを作成し問題を解くとなると、机の上で定規とペンを使い何度も間違いながらネットワークを描いた記憶がありとても作業が面倒であった。そこで、これをなんとかパソコン上で簡単にできないかと考え、その時「OR初心者」だった私にも簡単に使えるような、「OR初心者のためのネットワーク学習支援ソフト」の提案をしたい。
1.2 研究の概要
ORをこれから学ぶ学生やORを学んで日の浅い学生を「OR初心者」とし、OR初心者が使い易いように、問題解決の場合で使われるネットワークを『簡単なステップ』、『わかり易い操作』で自動作成してくれるようなソフトウェアを提案する。また、その「OR初心者」を文教大学経営情報学科の学生と限定することで更に使い易いソフトウェアを目指す。
1.3 論文の流れ
2章ではまず「ネットワーク」とは何かを説明する。3章では既存のソフトウェアの説明、および特徴と問題点を述べ、4章ではOR初心者のため「ネットワーク学習支援ソフト」の提案をする。5章では実際に開発したソフトの説明、問題点改善点について述べる。
2章 ネットワークの説明
では、「ネットワーク」とは、いったい何なのかこの章で簡単に説明する。
はじめに、「グラフ」と言う概念を説明しなければならない。
グラフとは、「点」と「枝」から構成される抽象概念である。グラフは現実の問題をわかり易く表すのに非常に便利で、例えば道路の地図や水道管網、友人関係などをグラフで表現する事ができる。図1はグラフの例である。
<図1> グラフの例
次に、「ネットワーク」とは、そのグラフに枝上を流れる「重み」を付加したものだ。図2はその例である。
<図2> ネットワークの例
点はノード、矢印はアローまたはリンクとよばれる事がある。
与えられた点のすべてを結ぶ最小のネットワークを求める最小木問題やある点からある点への長さが最も短い経路を求める最短路問題などはこのようなネットワーク上において最適解を求める問題で「ネットワーク計画」とよばれる。
3章 既存ソフトウェア
OR初心者のために開発されたものではないが「ネットワーク学習支援ソフト」はいくつか存在した。その中の2つを取り上げ、ソフトウェアの特徴、問題点を考察してOR初心者のための「ネットワーク学習支援ソフト」の提案の参考にする。ここで挙げる問題点とはこの論文で目指すところの「OR初心者」を対象とした「ネットワーク学習支援ソフト」を作る上で参考にするために、このソフトウェアを「OR初心者」が使うときに生じる問題点である。
3.1 <既存ソフト1>
「最短路検索法」<http://www17.cds.ne.jp/~busyboy/index.html>の例
このホームページではExcelのマクロ機能を活用しVBAを用いてORソフトウェアを開発していて、それらのソフトウェアを無料でダウンロードできるホームページだ。このホームページには、必要な値を入力するとネットワーク図を作成し、そのネットワークの最短経路をDIJKSTRA法によりネットワークに示してくれる「最短路検索法」と言うソフトウェアがあった。
3.1.1 使い方
<図3> 入力画面
<図4> 出力画面
この「最短路検索法」は、Excelで起動する。ソフトウェアを開くと<図3>の入力画面が出るのでネットワーク図作成だけなら青字の入力項目に必要な座標等の数値を手入力する。また、そのネットワークの最短路を検索したい場合は赤字の先行ノード、後続ノード、費用などの数値を手入力しなければならない。入力終了後、マクロを起動させると「このシートに出力しますか」などの細かな設定をメッセージボックスでソフト使用者に聞いてくる。それにYes、Noボタンで答えてゆくと<図4>のようにネットワークが描かれた画面が出力される。この時、最短路の検索もしている場合は最短路が色付きでわかり易く描かれて出力される。
3.1.2 特徴
このソフトウェアの特徴は、まずExcelで起動できることである。文教大学経営情報学科の学生は授業でExcelを使う機会が多い。その点からExcelは文教大学経営情報学科の生徒にとって汎用性の高いアプリケーションソフトといえる。実行に必要な項目が全て数値でかつ手入力である。また、点と矢印の色、点線、実線などの種類が細かく設定できる、マクロ機能を実行させると「このシートに出力しますか」などの細かな設定をメッセージボックスでソフト使用者に聞いてくるなど、機能面での充実が特徴として挙げられる。全て数値入力である。
まとめると以下のようになる。
l
Excelが使える環境なら使用可能
l
点、矢印の色が変えられるなど詳細な設定が可能
l
数値入力が多い
3.1.3 問題点
特徴で挙げたように、実行に必要な項目が全て数値かつ手入力なので点と矢印が増えるにつれて入力が面倒になる。例えば点2つ、矢印1つだけのネットワークを描くのに必要となる入力項目は約30個にもおよぶ。また、「先行ノード」や、「後続ノード」といったような専門用語が使われていて「OR初心者」には理解されにくいという問題がある。言葉の意味が理解されないとソフト使用時に障害になる可能性がある。そして最後に挙げる問題点は操作説明の不足である。このソフトは開くと入力画面が出てくるので、ホームページに記載されている説明を読まないで使う人にとっては操作説明がまったくない状態で使用しなければならない。入力画面を見ただけでの操作は「OR初心者」にとって障害になるだろう。
まとめると以下のようになる。
l
入力が多い
l
専門用語の多用で意味がわかりにくい
l
入力画面を見ただけではどう使っていいのかわからない
3.2 <既存ソフト2>
<http://carnap.ss.uci.edu/java/dijkstra/DijkstraApplet.html>の例
このホームページでは、Javaを使ったプログラムがWeb上で使えるようになっていた。使い方は、とても簡単で数値入力が一切なくマウスのクリックだけで点、矢印、枝の重みが設定でき、さらにDIJKSTRA法で最短経路を求められた。
3.2.1 使い方
プルダウンメニューから、「draw nodes」を選び、その下の余白の点を描きたい場所をクリックするとその場所に点が描かれる。矢印は同じプルダウンメニューから「draw
arrows」を選び、先ほど描いた点と点を結ぶようにマウスをドラックすると線が現れる。この線には真ん中に”50”の数字と三角形が表れるので、その三角形をマウスでドラックすると数値が変わり矢印の「重み」を1〜100の整数値で表すことができる。ネットワークを作図できたら右にある「step」ボタンを押していくことによりDIJKSTRA法で解を求めることができる。
3.2.2 特徴
Java Appletを使ったソフトウェアなのでインターネット接続環境があれば使用可のである。プルダウンメニューから「draw
nodes」などの操作項目を選ぶ度に「DOCUMENTATION」に英語で操作説明や次に行う操作の表示がされわかり易い。また、数値入力が一切なくマウスの操作のみでネットワークが描けるので作業が面倒でない。
まとめると以下のようになる
l
Javaを使用したプログラム
l
操作はマウスのみ
l
操作説明が表示されわかり易い
3.2.3 問題点
マウスのみの操作でネットワークが描ける、操作説明が随時表示されるなど「OR初心者」にとっても、使いやすいソフトウェアになっているが、特徴で挙げたようにJava Appletを使ったソフトウェアでプログラムの公開、ダウンロードサービス等がされていないのでインターネット接続環境なければ、使用できないと言う問題点がある。
l
インターネットに接続できる環境でないと使用できない
4章 提案
この章ではOR初心者のためのネットワーク作成ソフトはどのようなものであるべきかを3章で挙げた特徴と問題点を参考にし、提案する。
まず、使用言語はExcelのマクロ機能を活用したVBAを使うことにする。これは<既存ソフト1>の特徴で述べたように、文教大学経営情報学科の学生は授業でExcelを使う機会が多いことから、Excelは文教大学経営情報学科の学生にとって身近なアプリケーションソフトと考えたからである。操作の説明については、<既存ソフト2>の随時説明書きが現れるような形を取ることによって、あまりネットワークの知識がない人でもすぐに使えるようなものにする。使用者の操作については、<既存ソフト1>のような数値入力では面倒なので基本的にマウスの操作のみでネットワークが描ける<既存ソフト2>の形を取った方が良い。機能については、「OR初心者」向けということで、機能を増やしてもあまり使われない、もしくは使用者が混乱してしまい使用上の障害になる可能性があるということから、必要最低限の機能でシンプルなものが良いとする。ソフトウェア上で使われる用語は「OR初心者」にもわかり易いものにし、専門用語を控える。
5章 自作ソフトウェア
4章で述べた提案をふまえて、ソフトウェアを開発した。
自作ソフト、network(*.lzh 46KB)(Excel2000推奨)参照。
5.1 主な工夫点
Excelで使用できるソフトである。点はセルを利用し、画面上の座標を自動に取得できるよにした。このことにより矢印を描く際にデータがExcel上に残っているのでわざわざ座標を入力しなくても良くなる。操作ステップごとに説明文が現れ、使用者がこのソフトを使用し易いように工夫した。
5.2 使い方
ファイルを開き、マクロを有効にする。すると下の画像のような画面が表示される。
赤の点線で囲まれたところが入力範囲となっていて、その範囲内のセルをマウスでクリックしアクティブにさせたら、すぐ上にある「点」ボタンおして点を取得する。あとは「使い方」にそのつど操作説明が出るのでそこを見ながら操作を行う
下の画像は、実際にネットワークを描いた時の画面である。「点の情報」、「矢印の情報」は入力した時点でプログラムが画面上の座標やセルアドレス、点番号、色などを自動で取得し書き出してくれる。
範囲内に打てる点の数は20個までとし、使用者がそれ以上点を打とうとしたらメッセージボックスでエラーを伝えられるような仕組みになっている。また、範囲外に点を打とうとしてもメッセージボックスで「範囲外」と出て、点が打てないようになっている。
基本的にマウスの操作のみでネットワークが描ける作りになっているが、矢印の情報のみが数値入力になる。これはプルダウンリストなどを使っての入力にした場合、数値範囲が広すぎて対応しきれないということと、数値ではなく文字を入力しても矢印上に描かれるようにしたためである。矢印の色は5色の内から選択できるが、特に指定がなければ青色となる。「初期化」ボタンを押すと入力範囲に描かれたネットワーク、点の情報、矢印の情報は全て消去し、何も入力していない状態に戻る。
6章 おわりに
ソフトウェアは完成したが、まだ自分では気付かない問題点や改善点があるかもしれない。今後はWeb上で公開するなどをして、より多くの人にこのソフトウェアを使ってもらい改善すべきところがあるかどうか調べていきたい。また、この論文では、ネットワークを自動作成するソフトウェアを提案してきたのであって、「ネットワーク計画法」の解を求めるものではなかったので「解を求める」ことも視野に入れて改善を行っていきたいと思う。
謝辞
この卒業研究に取り組むにあたり、根本先生にはテーマの提供から資料の紹介、助言などさまざまな面で大変お世話になりました。また、いろいろなアイデアを出してくれた根本ゼミの4年生、発表を暖かく見守ってくれた3年生の皆様にも感謝いたします。本当にありがとうございました。
参考文献
[1] 久保幹雄「組合せ最適化とアルゴリズム」共立出版株式会社 2000
[2] 谷尻かおり「Excel/Office VBAを使ったはじめてのプログラミングレッスン1.」技術評論社 2000
[3] 谷尻かおり「Excel/Office VBAを使ったはじめてのプログラミングレッスン2.」技術評論社 2000
[4] 川口輝久 河野勉「かんたんプログラミングVisual Basic6 基礎編」技術評論社 1999
[5] アンク「Excel 2000 VBA辞典」翔泳社 2000
[6] 山賀弘「Excel 2000 VBA機能引き辞典」リブロス 2001
[7] VBAによるオペレーションズリサーチ (http://www17.cds.ne.jp/~busyboy/index.html)