様式9 +-------------------------------------+----------------+----------------------+ | システム名(コード): ALGOPAK | | システム報告書概要 | +-------------------------------------+ +----------------------+ | モジュール名(コード): BITMULT (A605) | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者・学生番号: 増沢善子 21SS1159 | 文書作成者・学生番号: 増沢善子21SS1159 | +-------------------------------------+---------------------------------------+ | 作成期間: 62/ 1/ ー / / | 文書作成期間: 62/ 2/ ー / / | +-------------------------------------+---------------------------------------+ | 親モジュール: ALGOS | 子モジュール: POWER | +-------------------------------------+---------------------------------------+ | 講義名・課題名: 卒業研究 | 参考文献(著者名、書名、出版社、発行年)| +-------------------------------------+ | | 開発形態: 移植 | SARA BAASE,COMPUTER ALGORITHMS, | +-------------------------------------+ | | 形式: サブルーチン | ADDISON WESLEY,1978. | +-------------------------------------+---------------------------------------+ | 利用対象者: 一般 | 格納メディア形式: フロッピーディスク | +-------------------------------------+---------------------------------------+ | 目的(問題解説、機能解説−制限事項)| 格納メディア番号、ファイル名: | | +---------------------------------------+ | | 記述言語・走行OS: TURBO PASCAL | | ブール行列の積を求める +---------------------------------------+ | | 走行条件(ハードウェア、ソフトウェア)| | サブルーチン プログラム | PC−9801,MS−DOS | | | | | | | +-------------------------------------+---------------------------------------+ | キーワード(適用分野、手法など) : | 分類コード(CRコードを使用) : | | BIT MATRIX MULTIPRICATION | | +-------------------------------------+---------------------------------------+ | 呼び出し法: BITMULT (N,A,B,C) | | | +-----------------------------------------------------------------------------+ | 操作手順(コンプリートプログラム(メインプログラム)の場合:1.システム起動手順、2.データ入出力 | | 手順と形式、3.終了手順) | | (サブルーチンの場合:1.呼び出し形式-引き数の並べ方-、2.親ルーチン、3.子ルー | | チン、4.その他) | | | | | | 1. N (入力): 行列A,Bの次数 (整数型,N≦15) | | | | Aij (入力): 行列Aのi,j成分 (Aij=0 or 1,i,j=1,・・・,N) | | | | Bij (入力): 行列Bのi,j成分 (Bij=0 or 1,i,j=1,・・・,N) | | | | Cij (出力): AとBのブール積Cのi,j成分 (Cij=0 or 1, | | | | i,i,j=1,・・・,N) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 注. システム1つにつき1枚作成 必要な場合モジュール1つにつき1枚作成(インターフェース仕様書-様式1-に追加) 様式7 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK | | 問題解説 | +-------------------------------------+ +----------------------+ | モジュール名: BITMULT (A605) | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 森木 京子 10SS1249 | 文書作成者: 森木 京子 10SS1249 | +-------------------------------------+---------------------------------------+ | 作成期間: 58/ 7/ ー 58/ 8/ | 文書作成期間: 59/11/ ー 59/12/ | +-------------------------------------+---------------------------------------+ | +、0 1 ・、0 1 | | ブール行列の和と積が 「゙「「「 「゙「「「 で | | 0、0 1 0、0 0 | | 1、1 1 1、0 1 | | ` | | 定義されたとき、n*nのブール行列AとBの積Cを求める問題である。 | | | | t=「logn]としてAを行列A1,A2,・・・,A「n/t]つまりn*tの小行列に、Bを | | | | B1,B2,・・・,B「n/t] t*nの小行列にそれぞれ分割すると、求めるAとBの積 | | | | は、 「n/t] | | C=AB= Σ AjBj | | j=1 | | で求めることができる。 | | | | 12…t t+1…2t (j-1)t+1…jt …n _______________ | | / ィ ィ ィ ィ 、 /______B1______、 | | A=、Ai1ィ Ai2 ィ…ィ Aij ィ… 、 B= 、_______:_______、 | | 、 ィ ィ ィ ィ 、 、______Bj______、 | | 、 ィ ィ ィ ィ / 、 : / | | ここで ひとつひとつの積AjBjはそれ自身がn*n行列であることに注意する。 | | | | AjBjを計算するために Ajの各行AijについてAijBjを求める。AijBjを | | | | 求めるには、Aijが1をもつ列番号kごとにBjの第k行をみつけ こうしてBj | | | | の中でみつけた行をn次BITベクトルとして全部加える。 | | | | 例えば | | /0 0 1、 /1 1 0 1 0 0 0 0、 | | 、1 0 1、 、1 1 0 1 1 0 0 1、 | | 、1 1 1、 /0 1 0 1 1 0 0 1、 、1 1 0 1 1 1 0 1、 | | Aj=、1 0 0、, Bj=、0 0 0 1 0 1 0 0、, Cj=AjBj=、0 1 0 1 1 0 0 1、 | | 、0 0 0、 、1 1 0 1 0 0 0 0/ 、0 0 0 0 0 0 0 0、 | | 、1 1 0、 、0 1 0 1 1 1 0 1、 | | 、0 0 0、 、0 0 0 0 0 0 0 0、 | | 、0 1 1/ 、1 1 0 1 0 1 0 0/ | | となる。 | | | | この Cj (1≦j≦「n/t]) の結合されたものがCである。 | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 様式6 +-------------------------------------+----------------+----------------------+ | システム名: ALGOPAK | | アルゴリズム流れ図 | +-------------------------------------+ +----------------------+ | モジュール名: BITMULT (A605) | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者: 森木 京子 10SS1249 | 文書作成者: 森木 京子 10SS1249 | +-------------------------------------+---------------------------------------+ | 作成期間: 58/ 7/ ー 58/ 8/ | 文書作成期間: 59/11/ ー 59/12/ | +-------------------------------------+---------------------------------------+ | | | ++-------++ +---------+ | | !! BITMU !! ! t:= ! | | !! LT !!---->! 「logN] ! | | !! !! ^ ! ! | | ++-------++ ! +---------+ | | ! ! | | ! +---------+ | | ! ! UNIONS[ ! | | ! ! 0]:=0 ! | | ! ! ! | | ! +---------+ | | ! ! | | ! +--------++ +--------++ +---------+ +---------+ | | ! ! FOR !! ! FOR !! ! FOR i ! ! ! | | !-! j:=1 TO!!---->! k:=1 !!---->! := 1 TO !---->! 1 ! | | ! 「N/t]!! ! TO t-1 !! ^ ! 2**k-1 ! ! ! | | +--------++ +--------++ ! +---------+ +---------+ | | ! ! | | ! +--------++ +---------+ | | ! ! FOR !! ! Ci:= Ci ! | | !-! I:=1 !!---->! vUNIONS ! | | ! TO N !! ! [Aij] ! | | +--------++ +---------+ | | | | | | | | | | | | | | | | +---------+ +-------------------------+ | | ! ! ! UNIONS[i+2**k] ! | | ! 1 !---->! :=UNIONS[i] v Bk ! | | ! ! ! ! | | +---------+ +-------------------------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +-----------------------------------------------------------------------------+ 様式9 +-------------------------------------+----------------+----------------------+ | システム名(コード): ALGOPAK | | システム報告書概要 | +-------------------------------------+ +----------------------+ | モジュール名(コード): CBITMULT (P605) | ライブラリ-登録番号: | +-------------------------------------+---------------------------------------+ | 作成者・学生番号: 増沢善子 21SS1159 | 文書作成者・学生番号: 増沢善子21SS1159 | +-------------------------------------+---------------------------------------+ | 作成期間: 62/ 1/ ー / / | 文書作成期間: 62/ 2/ ー / / | +-------------------------------------+---------------------------------------+ | 親モジュール: ALGOPAK | 子モジュール: BITMULT (A605) | +-------------------------------------+---------------------------------------+ | 講義名・課題名: 卒業研究 | 参考文献(著者名、書名、出版社、発行年)| +-------------------------------------+ | | 開発形態: 移植 | SARA BAASE,COMPUTER ALGORITHMS, | +-------------------------------------+ | | 形式: コンプリート | ADDISON WESLEY,1978. | +-------------------------------------+---------------------------------------+ | 利用対象者: 一般 | 格納メディア形式: フロッピーディスク | +-------------------------------------+---------------------------------------+ | 目的(問題解説、機能解説−制限事項)| 格納メディア番号、ファイル名: | | +---------------------------------------+ | | 記述言語・走行OS: TURBO PASCAL | | ブール行列の積を求める +---------------------------------------+ | | 走行条件(ハードウェア、ソフトウェア)| | テスト プログラム | PC−9801,MS−DOS | | | | | | | +-------------------------------------+---------------------------------------+ | キーワード(適用分野、手法など) : | 分類コード(CRコードを使用) : | | BIT MATRIX MULTIPRICATION | | +-------------------------------------+---------------------------------------+ | 呼び出し法: CBITMULT | | データ | +-----------------------------------------------------------------------------+ | 操作手順(コンプリートプログラム(メインプログラム)の場合:1.システム起動手順、2.データ入出力 | | 手順と形式、3.終了手順) | | (サブルーチンの場合:1.呼び出し形式-引き数の並べ方-、2.親ルーチン、3.子ルー | | チン、4.その他) | | 1.> CBITMULT.SRC       | | | |                         | | | |           | | | | データ | | | | 2.1)入力データ | | | | N:行列A,Bの次数 (整数型,N≦15) | | | | Aij:行列Aのi,j成分 (Aij=0 or 1,i,j=1,・・・,N) | | | | Bij:行列Bのi,j成分 (Bij=0 or 1,i,j=1,・・・,N) | | | | 2)出力データ | | | | A,B:もとの行列 | | | | C:AとBのブール積 | | | | | | | | | | | +-----------------------------------------------------------------------------+ 注. システム1つにつき1枚作成 必要な場合モジュール1つにつき1枚作成(インターフェース仕様書-様式1-に追加)