2002年3月26日 fbhgソースリストのアップロードとN88互換BASIC for Windows95での動作確認 関谷のWebサイトトップページへ 関谷(KPC情報技術科)トップページへ 関谷へのメッセージ
(北九州職業訓練短期大学校紀要 第4号 pp.29-36 1992年3月)
北九州職業訓練短期大学校 情報処理科 関谷 順太
目次 要約 1.はじめに 2.ISM法について 2.1 ISM法の概要 2.2 ISM法の計算処理 3. ISM構造学習法とソフトについて 3.1 ISM構造学習法 3.2 ISM構造学習法用ソフト 4. プログラムの試作と結果 4.1 隣接行列による階層計算プログラム 4.2 隣接リストによる階層計算プログラム 4.3 階層図のプリンタ出力プログラム 5. 考察 6. おわりに 参考文献 2002.3.22 アップロード時の補足
ISM(Interpretive Structural Modeling)−わかりやすい構造化法−5)は、社会システム工学の分野において、複雑で不明確な問題に対して、いろいろな要素間の相互関係を多階層の有向グラフとして図示して、モデルの解釈と検討を行うものである。佐藤2)はこれを教材内容の構造化の問題に適用し「ISM教材構造化法」を提案し、利用が広がりつつある。構造モデルの作成には、コンピュータを使うと便利であり、日本電気ソフトウェア(株)6)がPC9800シリーズ用ソフトを販売している。
北九州職訓短大の情報処理科カリキュラム「データ構造II」におけるグラフの教材としての利用も考えて、ISM法での階層計算を隣接リストで行うプログラムをパソコンFM−RのBASICで試作した。隣接行列での処理時間が要素数の2乗に比例するのに対して、この隣接リストでは、要素数に比例する。処理時間は、要素数が19で140秒対3秒である。
構造図(枠とラベル)のプリントプログラムも作成したが、現在の段階ではまだ人が階層表と隣接リストを見て、階層ごとの要素の並びを入力しなけれはならない。
これらのプログラムを使って、教材・カリキュラムのほかいろいろ複雑な問題の構造化を、参加型システムズ・アプローチで行うことができる。
教育問題の大きなテーマの一つはカリュラム・教材である。それらの作成法について,佐藤1)の解説が『技能と技術』3/1991に、「コンセプト・マッピングアプローチによる教材開発」としてある。それに引用された参考文献2,3)によれば、ISM構造学習法は、筆者が関係して数年前に開発したソフトウェア「連関図とDEMATELのパソコン処理システムSAMDIC−P(Systems Aproach by Matrix Development on Inter-related chart with Personal computers)」4)と類似したソフトウェアを使う。SAMDIC-Pは、重み付きの2項関係から、階層図や要因の層別図(関連度,影響度)等を作っていく機能を持つ。
当短大内では、パソコン用ソフト「ISM構造チャート作成システム(ISM−98)」5)を購入してしなかった。このソフトを買ったとしても、自分で自由に改造できない。(その後このソフトは購入された。)
当短大情報処理科のカリキュラム「データ構造II」の授業予定にグラフがあり、その中には隣接行列と隣接リストの比較やトポロジカルソートのプログラム7)があった。そこで、これらの内容に関するプログラミングによる確認作業としてのプログラムをパソコンFMR−60で試作し、そのプログラムを教材の一つとした。
このプログラムは教材等の教育分野のみでなく、一般の問題構造の理解に役立つ手法・道具( ツール) であるので、ここに報告する。
ISM法5)は、アメリカのバテル・コロンバス研究所で開発され、広く使用されるようになった構造モデリング手法のひとつである。
この手法は、コンピュータを媒介として、われわれが心の中に抱く社会や企業の複雑な問題のイメージを、システム構成要素の一対比較によって明確な姿として浮かび上がらせ、全体像を一目で把握させようとするものである。構造モデル、すなわち要素間の相互関係パターンは、「Interpretive Structural Model 」と呼ばれる多階層の有向グラフとして図示され,それが再び人間の直観や想像力を刺激して問題の本質に迫るという一種のマン・マシン系を成している。
構造分析手法の特徴は、複雑で不明確な問題に対して、その要素・構造・範囲・内容などがばく然とした段階から出発して次第に問題を明らかにしていく過程そのものにある。この過程には一般に、
(1)構成要素の抽出 (2)要素間の関係づけ (3)構造モデルの作成 (4)モデルの解釈と検討 という手順が含まれる。
ISM法は、グラフ理論の基本的概念をコンピュータを媒介として系統的に適用することにより、いろいろな要素間の相互関係パターンをISMと呼ばれる多階層の有向グラフとして図示する。
この為のコンピュータ・ソフトでの処理手順は、2.1に述べた手順と対応して次のようになる。
(1)要素の定義 (2)2項関係の入力 (3)隣接行列の作成 (隣接リスト作成) (4)可到達行列の計算┬(階層計算と出力) (5)レベル分割と出力┘ (6)骨格行列の計算 (7)最小辺有向グラフの作成
教育過程の編成は教科内容の基礎的構造を十分に反映したものでなくてはならない。そのためには教師は教育過程・指導内容の編成に当たって、その教科内容の基礎的構造を分析し理解しておくことが必要である。
佐藤博士2,3)は、ISM法と教材内容の構造化の問題を結びつけて、”ISM教材構造化法”を提案し、国内の自治体の教育センターや海外の大学にまで普及させてきているという。この学習法は、パソコンの普及によって実用性が一段と高まっている。
ISM構造学習法用ソフトとしては、「教材構造チャート作成システム ISM−98」がNECパーソナルコンピュータPC−9800シリーズ用に、日本電気ソフトウェア株から、定価100,000 円で販売されている。(NEC以外のFM用などはない。) このソフトは、
(1)運用準備 (2)教材要素の登録・追加・修正 (3)教材構造チャートの作成・蓄積 (4)教材構造チャートの検索 (5)ユーティリティ
などの機能を持ち、メニューに従って、初心者でも使えるようになっている。
特徴として、辺の交差が少なくて見やすい配置の構造チャートを自動的に作れるほか、時間データを加えた図を作ることもできる。
処理可能なデータ数は、つぎのとおりである。
1)一枚のデータディスクに登録することのできる要素数:999個以内 2)一度に構造化の対象とすることのできる要素数:60個以内 3)一枚のデータディスクに登録することのできる教材構造チャート数:50個以内
3.2に述べた処理手順によって、レベル分割・出力( 階層計算・出力) までのプログラムISM.BASを作った。このプログラムは隣接行列・可到達行列を使い、レベル分割を行うもので、FMR−60のFBHGインタプリタで3日間ほどでできた。このプログラムでの計算時間は、要素数が27なら6〜8分と多少長くなるが、要素数が19なら2〜3分で求まる。
なお、可到達行列の計算に Warshall のアルゴリズム(グラフの推移的閉包)8)を使用した ISMW.BAS での計算時間は、要素数が27で41秒、要素数が19で20秒で求まり、大きく改善された。
1)入力データ ・入力ファイル名(MS-DOS テキスト形式) (もし,ヌルなら以下のキーボードからの入力とする。ファイルは、キーボード入力データと同じ並びとする。) ・モデル名と要素数 ・要素番号IとJ(I→J、IがJの前提とか、IがJの要因とか)(入力の最後は、0,0とする。) 2)出力データ(CRTおよびプリンタ) ・入力ファイル名 ・隣接行列 ・可到達行列 ・階層データ表 3)制約条件など ・要素数:40以下 ・階層数:40以下 ・一つの階層での要素数:40以下 ・ループがあってもよい。 4)行数:110(コメントを含みマルチ文) 5)実行例を図1 にしめす。この構造モデルは(a)であり,入力ファイルが(b),プリンタ出力が(c)である。
ISM図 1-2 ,5 2 3 2 4 3 1 3 4 4 3 4 5 5 1 0 0
[隣接行列による階層計算] 91/12/28 ファイル名:ismd124.dat [ISM図 1-2],要素数: 5 15:56:08 隣接行列 I/J 1 2 3 4 5 1 0 0 0 0 0 2 0 0 1 1 0 3 1 0 0 1 0 4 0 0 1 0 1 5 1 0 0 0 0 可到達行列 M(i,j) 15:56:09 I/J 1 2 3 4 5 1 1 0 0 0 0 2 1 1 1 1 1 3 1 0 1 1 1 4 1 0 1 1 1 5 1 0 0 0 1 [ISM図 1-2],階層データ表 15:56:10 レベル :要素群 1 : 1 2 : 5 3 : 3 4 4 : 2
[隣接リストによる階層計算] 91/12/28 ファイル名:ismd124.dat [ISM図 1-2],要素数: 5 14:05:56 隣接リスト I(前提、要因) [入次数][出次数] J(後、結果) 1 [ 2][ 0] 0 2 [ 0][ 2] 3 4 3 [ 2][ 2] 1 4 4 [ 2][ 2] 3 5 5 [ 1][ 1] 1 [ISM図 1-2],階層データ表 14:05:57 レベル :要素群 1 : 1 2 : 5 3 : 3 4 4 : 2
「データ構造II」の教科目で、グラフを学習する。そこで使用したテキスト7)8章では、「グラフの表現法としての隣接行列は、要素間の関係がない所が多い疎な行列の処理も、時間計算量がO(n2)であって効率が悪い。 一方、隣接リストと呼ばれる線形リストを使うとO(n)であり,効率が良い。」と結論のみを述べている。そして、この隣接リストのを使ってトポロジカル・ソートやクリティカル・パス法のプログラムがC言語で例示してあった。この隣接リスト・逆隣接リストを使ってトポロジカル順序を見つけるアルゴリズムを参考にして、BASICではリストを配列にして階層計算を行った。作成は変更も入れて2日間程度である。
1)入力データ 5.1 隣接行列によるプログラム(ISM) に同じ。 2)出力データ(CRTおよびプリンタ) ・入力ファイル名 ・隣接リスト ・階層データ表 3)制約条件など ・要素数:60以下 ・入次数,出次数:それぞれ10以下 (入る辺の数,出ていく辺の数) ・階層数:30以下 ・一つの階層での要素数:10以下 ・ループは2要素のみ。 4)行数:70(コメントを含みマルチ文) 5)実行例を図1 ( d) に示す。 計算時間をみると、要素数が19で3秒、要素数33で5秒であった。
プリンタFMPR-451または FMLBP112 による階層図のラベルプリントを行うプログラムPRT.BASを作成した。
ISM−98でのチャート出力では、プログラムで自動的に、辺の交差の少ない要素配置でのラベルプリントを行っている。それをCS要素配置法と呼んでいる。
しかし、PRT.BASは現段階では人手での配置指定入力としている。(階層計算結果の階層表と隣接リストをみて、辺の交差が少なくなるような要素の並び順を階層毎に指定する。)
1)入力データ 5.1 隣接行列によるプログラム(ISM) での入力ファイルに、つぎの2種のデータを追加したものである。 ・要素番号と要素名(要素数繰り返し) ・階層数 ・階層番号とその階層での要素数 ・要素番号(その階層での要素数繰返し) (ここでの要素番号の順に左から配置するので、順序は辺の交差が少ないように、考えて決めること。) 2)出力データ(プリンタ) ・階層図 (モデル名,作成日,ISM−KPCを上端にプリントし、要素のラベルプリントを階層数分繰り返す。 3)制約条件など ・要素数:制限なし ・入次数,出次数:それぞれ10以下(入る辺の数,出ていく辺の数) ・階層数:制限なし ・一つの階層での要素数:8以下/15インチ (B4サイズ縦長なら5以下) 4)行数:75(コメントを含みマルチ文) 5)実行例を図2・3にしめす。(a)が入力ファイルであり、(b)がプリントした図である。(ラベルの間の結線は、コンピュータではしないで、人が行う。)
type ismd124.dat ISM図 1-2 ,5 2 3, 2 4, 3 1, 3 4, 4 3, 4 5, 5 1, 0 0 1,"ismD124 要素名 1" 2,"ismD124 要素名 2" 3,"ismD124 要素名 3" 4,"ismD124 要素名 4" 5,"ismD124 要素名 5" 4, 1,1, 1 2,1, 5 3,2, 3, 4 4,1, 2
(参考文献2の斎藤昇、山登り学習法〜高校数学科の実践〜,pp.133のチャートを引用)
type ismd42.dat ISM図 4-2確率の学習構造チャート ,15 1 2, 1 7, 1 8, 2 3, 2 4, 3 5, 4 5, 5 6, 6 7 6 8, 6 12, 6 15, 7 11, 9 10, 10 11, 12 13, 12 14, 13 14 14 13, 14 15, 0 0 1,"事象と集合 和・積・余・ 排反事象" 2,"確率の意味" 3,"相対度数" 4,"同様に確からしい" 5,"確率の定義" 6,"確率の基本的性質" 7,"加法定理" 8,"余事象の定理" 9,"集合の直積" 10,"独立試行" 11,"独立試行の定理" 12,"条件つき確率" 13,"乗法定理[T]" 14,"乗法定理[U]" 15,"期待値" 8 1,3 11, 15, 8 2,4 10, 7, 13, 14 3,2 9, 12 4,1 6 5,1 5 6,2 3, 4 7,1 2 8,1 1
1)階層計算の計算時間を比較してみると、テキストでの予想どうりであった。隣接行列による計算は、要素数が大きくなるほどその2乗に比例して長くかかるのに対して、隣接リストの方はもともと速い上に要素数に比例であるから、その差が大きくなる。
2)階層図のラベルプリントは要素配置を指定する必要がある。これは自動配置が望ましい。
3)「データ構造II」のグラフでの教材の一つとして、4.,5.1)の事項を授業で説明した。隣接行列による処理手順を十分には説明しなかったためか、あるいはこのような問題構造を階層図示する意味の説明不足からか、あまり興味を示さず、理解して貰えなかったようである。(アンケートを取って解析すべきであった。)この対策は、今後の課題である。
1)教材などの構造化ツールとして、ISM法の階層計算を逆隣接リストによって効率的に行うプログラムTOPO2.BASをFMR用にFBHGインタプリタで試作し、計算量の理論通りの計算時間がかからない処理結果を得た。
2)階層図のプリンタ出力プログラムPRT.BASを作成したが、見やすい配置を利用者が指定するために自動配置にはなっていない。
3)実用化のためには、次のような課題が残っている。
a)階層図の見やすい配置計算の自動化 b)使いやすさ(CRTでの階層図簡略表示) (要素番号の文字化) (データ管理) c)3要素以上でのループの処理 これらについて、FMRパソコンでのISM法のツールとして改善を続ける予定である。
4)PC−9800シリーズ用移植について述べる。階層計算の部分はほとんどそのままでよい。プリントプログラムは、相当部分書き換えとなる。
5)これらの構造化ツールを利用して、カリキュラム・教材の構造化を進める。さらに、その他の問題構造の把握にも適用し、参加型のシステムズ・アプローチを取り入れたいと考える。
1)佐藤隆博,コンセプト・マッピングアプローチによる教材開発,技能と技術,148号,pp.2−7,1991
2)佐藤隆博,ISM構造学習法,明治図書,1987
3)佐藤隆博,教育情報工学入門,pp.48−74,コロナ社,1989
4)吉原晴男・関谷順太,連関図とDEMATELとの組み合わせによる問題構造の把握 パソコン処理システムSAMDIC−P,第5回数理計画シンポジウム論文集,pp.143−151,1984
(2002.3.22補足 連関図とDEMATELとの組み合わせによる問題構造計算(FORTRAN言語)とCalcompプロッター作図プログラム作成は、当時の安川情報システム(株)の稲益君による。パソコンへの移植は、同じく、荒添美穂さんによる。荒添さんは、NHKテレビの「働く日本人」(1984.6.7)で北九州のソフトウェア企業のSEとして、このソフトの紹介をした。その後、このテレビ番組の視聴者からのSAMDIC-Pの注文があった。)
5)椹木義一・河村和彦編,参加型システムズ・アプローチ−手法と応用−,pp.33−75,日刊工業新聞社,1981
6)日本電気ソフトウェア株,教材構造チャート作成システムISM−98 ユーザーズマニュアル,日本電気ソフトウェア株,1986
7)L.Ammeraal著/小山裕徳訳,C−データ構造とプログラム,pp.213−232,オーム社,1990
8)奥村晴彦著,C言語による最新アルゴリズム事典,pp.127,技術評論社,1991
その後、PCがMS-DOS(Basic言語など)からWindows95に移行したりして、このBasicプログラムを動かす環境がh普通には無くなってしまった。(次に述べるように、Window環境で使えるBasicソフトを買う、あるいはN88互換のフリーソフトを使ったりすれば、Windows環境でもdos basicの資産を使うことが出来るが、一般的ではない。) ISM法による構造図作成の必要性は、いろいろな問題がより複雑になっているから、増えることはあっても、少なくなってはいない。定年後は、自由時間が多くなるので、誰でもつかえるJavaアプレットなどに移植してみたいと思う。
2002.3.26 FBHGのソースリストをアップロードした。これの実行環境として、MS-DOSで、FBHGが起動できれば、(ブラウザでのソース部分をコピーしてテキストエディタに貼り付け、拡張子をbasとして保存したものを)そのままで、load、run出来る。Windows環境では、F-Basicv6.3などがあるが、小生は使っていない。
Windowsマシンでは、N88互換BASIC for Windows95がフリーで使える。残念ながら、fbhgと非互換があり、そのままでは、実行できない命令(open、saveなど)がある。実行時に、ファイル名をヌルで入力して、データをキー入力にしても、ism.bas、ismw.basでは、可到達行列が正しく求まらなかった。ただし、topo2.basについては、正しい結果が得られた。
トップに戻る