
大阪大学 情報科学研究科 情報工学 2015年8月実施 アルゴリズムとプログラミング
Author
Description
図に示す ANSI-C 準拠である C 言語のプログラム (program) は、配列 (array) values の要素 (element) に格納された非負整数 (non negative integer) のデータ (data) を、 進数 (-base number) () とみなして整列 (sort) し、出力 (output) するプログラムである。以下の各問に答えよ。
(1) プログラムの 10~26 行目の for 文の処理において 1 巡目 ( のとき) および 2 巡目 ( のとき) の終了時における配列 buckets の内容を答えよ。なお、配列の各要素は 0 で初期化される。配列の各要素 buckets[x][y] において、 は 3 以上の値、 は 5 以上の値を取りうるが、これらの内容については答えなくてよい。
(2) プログラムで実現されている整列アルゴリズム (sorting algorithm) に関する以下の各小問に答えよ。
- (2-1) この整列アルゴリズムは、一般に何と呼ばれているか名称を答えよ。
- (2-2) 整列対象のすべてのデータを 進数で表現したときの最大の桁数を 、データの数を としたとき、時間計算量のオーダー表記を理由とともに答えよ。
- (2-3) このアルゴリズムでは、どのような工夫によってデータ同士の比較を伴わない整列を可能にしているか答えよ。
- (2-4) 比較を伴う整列アルゴリズムと比較して、本アルゴリズムの特徴を時間計算量および空間計算量の観点から答えよ。
(3) 配列 values の要素に格納されたデータを降順 (descending order) に整列するようにプログラムを変更したい。そのために下線(ア)および下線(イ)をどのように記述すればよいか、適切な式を答えよ。
#include <stdio.h>#define MAXR 256#define MAXN 1000
void sort(int values[], int numvalues, int r, int maxdigit){ int rd, d, b, i, n, j; int buckets[MAXR][MAXN]; int numbucket[MAXR];
rd = 1; for (d = 1; d <= maxdigit; d++){ for (b = 0; b < r; b++){ numbucket[b] = 0; } for (i = 0; i < numvalues; i++){ n = (values[i] / rd) % r; buckets[n][numbucket[n]++] = values[i]; }
i = 0; for (b = 0; /* 下線(ア) */ b < r; b++){ for (j = 0; j < numbucket[b]; j++){ /* 下線(イ) */ values[i++] = buckets[b][j]; } } rd *= r; }}
int main(){ int i; int values[5] = {12, 21, 1, 11, 2}; sort(values, 5, 10, 2); for(i = 0; i < 5; i++){ printf("%d\n", values[i]); } return 0;}Kai
(1)
1 巡目 () 終了時:
下位 1 桁目(1の位)に基づき buckets[n][y] に格納される。対象データは {12, 21, 1, 11, 2}。
x=0: なしx=1:buckets[1][0]=21,buckets[1][1]=1,buckets[1][2]=11x=2:buckets[2][0]=12,buckets[2][1]=2
2 巡目 () 終了時:
1 巡目終了後の values は {21, 1, 11, 12, 2} となる。これを 2 桁目(10の位)に基づき格納する。
x=0:buckets[0][0]=1,buckets[0][1]=2x=1:buckets[1][0]=11,buckets[1][1]=12x=2:buckets[2][0]=21
(2)
-
(2-1) 基数整列 (Radix Sort)
-
(2-2) 。各桁において 個のデータをバケツに入れ、その後 個のバケツを走査してデータを回収する操作を、 回繰り返すため。 English: For each of the digits, the algorithm distributes the elements into their corresponding buckets and subsequently scans the buckets to collect the elements. This single pass takes time, and the process is repeated times.
-
(2-3) データの数値を基数に基づいた添字(インデックス)として利用し、バケツ(配列)の該当箇所に直接配置することで、値の大小比較を行わずに順序を決定している。 English: It determines the sorting order without performing direct value comparisons between elements. Instead, it utilizes the numerical values of the data at a specific radix as array indices to directly place the elements into their corresponding buckets
-
(2-4)
- 时间计算量:比较ソートの下限 に関わらず、桁数 が小さければ に近い線形時間で動作する。 English: Unlike comparison-based sorting algorithms, which are bounded by a lower limit of , Radix Sort can operate in near-linear time provided that the number of digits is small or treated as a constant.
- 空间计算量:バケツを保持するための大きなメモリ領域(このプログラムでは
MAXR * MAXN)を必要とするため、比较ソートよりも効率が悪い。 English: It is less space-efficient than typical comparison-based sorts because it requires a substantially large auxiliary memory space to maintain the buckets (in this program, an array of size MAXR * MAXN).
(3)
降顺にするためには、バケツからデータを取り出す際にインデックスの大きい方から走査する。
- (ア)
b = r - 1; b >= 0; b-- - (イ)
values[i++] = buckets[b][j](変更なし)
Summary

大阪大学 情報科学研究科 情報工学 2015年8月実施 計算機システムとシステムプログラム
Author
Description
(1) 計算機 (computer), 特に, 中央処理装置 (CPU: central processing unit) に関する以下の各小問に答えよ. 解答は全て解答用紙の太線内に書くこと.
(1-1) 以下の文章の空欄 (a)~(e) に当てはまる最も適切な語句を, 下記の選択肢から選び, 記号で答えよ.
計算機の構成方式のことを [ (a) ] と呼ぶ. 現在, 実用的に利用されている大部分の計算機は, 線形アドレス空間 (linear address space) を有するメインメモリ (main memory) 上にプログラム (program) 及びデータ (data) を置き, プログラムを逐次実行する, 等の [ (a) ] を採用している. このような計算機は, [ (b) ] 計算機と呼ばれる.
[ (b) ] 計算機では, [ (c) ] が示すメインメモリアドレスから, プログラムの構成要素である機械語命令を読み出し, これをデコード (decode) して実行する. 機械語命令は, その種類を示す [ (d) ] 部と, 演算対象のデータである [ (e) ] の格納場所を示すアドレス部から成る.
【選択肢】
| (ア) データフロー型 (dataflow architecture) | (イ) オペコード (operation code, opcode) | (ウ) プログラムカウンタ (program counter) |
| (エ) アーキテクチャ (architecture) | (オ) VLIW (very long instruction word) | (カ) オペランド (operand) |
| (キ) 命令レジスタ (instruction register) | (ク) メモリデータレジスタ (memory data register) | (ケ) スーパースカラ (superscalar) |
| (コ) ノイマン型 (von Neumann architecture) |
(1-2) 一つの機械語命令 (以下, 命令と略す) の処理を 段のステージ (stage) に分け, 1 ステージを 1 クロックサイクル (clock cycle) で実行する同期型 CPU を考える. クロック周波数を [Hz] とする. 以下の (1-2-1)~(1-2-4) に答えよ.
- (1-2-1) 個の命令をパイプライン (pipeline) 処理を用いずに逐次的に実行する場合の実行時間 [s] を示せ.
- (1-2-2) 個の命令をパイプライン処理を用いて実行する場合の実行時間 [s] を示せ. 但し, パイプラインストール (pipeline stall) は無いものとする.
- (1-2-3) 個の命令をパイプライン処理を用いて実行する場合の単位時間あたりの命令実行数 [instructions/s] について, における極限を示せ. 但し, パイプラインストールは無いものとする.
- (1-2-4) パイプライン処理を用いた CPU の性能 (単位時間あたりの命令実行数) を高める手法の一つとして, ステージ数 を増やす方法がある. この方法により CPU の性能を高めることが可能である理由を説明せよ.
(1-3) 一つの機械語命令 (以下, 命令と略す) の処理を, 命令フェッチ (IF: instruction fetch), デコード (D: decode), オペランドフェッチ (OF: operand fetch), 実行 (EX: execution), 結果の格納 (S: store) の 5 つのステージに分け, 1 ステージ 1 クロックサイクルのパイプライン処理を用いた同期型 CPU において, 以下の (1-3-1) および (1-3-2) に示す命令 1~3 を実行することを考える. 解答欄の命令 1 の例を参考に, 実行されるステージ名 “IF”, “D”, “OF”, “EX”, “S” を解答欄に記入せよ. パイプラインストールにより完了までに複数クロックサイクルが必要なステージは, 完了するクロックサイクルにステージ名を, それ以外のクロックサイクルに ”-” を記入すること. なお, 以下の点を仮定する.
- パイプラインストールの原因としては, 構造ハザード (structural hazard) およびデータハザード (data hazard) を考える.
- 構造ハザードはメモリアクセス (memory access) の競合 (conflict) のみ考える.
- プログラムとデータは同じメインメモリ上にある.
- ある命令でレジスタに書き込まれた値を以降の命令で参照する場合, 前者の命令の格納 (S) が完了した後, 後者の命令のオペランドフェッチ (OF) が可能となる.
(1-3-1)
- 命令 1 :
MOV R1, (A); メインメモリアドレス A の内容をレジスタ R1 に転送 - 命令 2 :
MOV R2, (B); メインメモリアドレス B の内容をレジスタ R2 に転送 - 命令 3 :
ADD R1, R2; R1 + R2 の結果を R1 に代入
(1-3-2)
- 命令 1 :
MOV R1, (A); メインメモリアドレス A の内容をレジスタ R1 に転送 - 命令 2 :
INC R1; R1 + 1 の結果を R1 に代入 - 命令 3 :
MOV (B), R1; レジスタ R1 の内容をメインメモリアドレス B に転送
(2) キャッシュメモリ (cache memory) 及びメインメモリ (main memory) で階層を形成しているメモリシステムを持つ計算機を考える. 以下の各小問に答えよ. 解答は全て解答用紙の太線内に書くこと.
- (2-1) キャッシュメモリに存在する命令あるいはデータを読み出す際のアクセス時間 (access time) が 2 [ns] であり, キャッシュメモリに存在しない命令あるいはデータをメインメモリから読み出す際の, キャッシュメモリ及びメインメモリへのアクセス時間の和が 50 [ns] であるとする. また, メインメモリの容量はプログラムに対して十分大きく, プログラムの命令及びデータは全てメインメモリに格納されているものとする. 以下の (2-1-1) 及び (2-1-2) に答えよ.
- (2-1-1) プログラムを実行した結果, プログラムの命令あるいはデータを読み出す際の平均のキャッシュヒット率 (cache hit ratio, cache hit rate) が 80% であった. この時の, プログラムの命令あるいはデータを読み出す際の平均アクセス時間を求めよ. 導出根拠も示せ.
- (2-1-2) キャッシュメモリを, 命令あるいはデータを読み出す際のアクセス時間が 2 [ns] のものから 4 [ns] のものに変更する. ただし, キャッシュメモリに存在しない命令あるいはデータをメインメモリから読み出す際の, キャッシュメモリ及びメインメモリへのアクセス時間の和は 50 [ns] のままであるとする. この時, (2-1-1) で得られた平均アクセス時間を維持するために必要となるキャッシュヒット率を求めよ. 導出根拠も示せ.
- (2-2) 一般に, プログラムを実行するためにアクセスされる命令及びデータには, 参照局所性 (locality of reference) がある. 次の 2 種類の参照局所性のそれぞれについて説明せよ.
- (2-2-1) 空間的参照局所性 (spatial locality of reference)
- (2-2-2) 時間的参照局所性 (temporal locality of reference)
- (2-3) キャッシュメモリとメインメモリで階層を形成することの利点をその理由と共に述べよ.
Kai
(1-1)
- (a) (エ) アーキテクチャ (architecture)
- (b) (コ) ノイマン型 (von Neumann architecture)
- (c) (ウ) プログラムカウンタ (program counter)
- (d) (イ) オペコード (operation code, opcode)
- (e) (カ) オペランド (operand)
(1-2)
-
(1-2-1) [s]
-
(1-2-2) [s]
-
(1-2-3) [instructions/s]
-
(1-2-4) 理由:ステージ数を増やすことで、1ステージあたりの論理回路が短くなり、各ステージの処理遅延が減少する。これにより、CPU をより高いクロック周波数 で動作させることが可能になり、结果として全体的な命令スループット(単位時間あたりの命令実行数)が向上するため。
English: Increasing the number of pipeline stages () reduces the logic gate delay per stage. This reduction allows the CPU to operate at a higher clock frequency (), which consequently increases the overall instruction throughput.
(1-3)
パイプラインの動作ルール:
- 構造ハザード:プログラムとデータは同一のメインメモリにあるため、
IF,OF,Sが同一クロックサイクルで同時に発生するとメモリアクセス競合が起きる。 - データハザード:RAW (Read After Write)。ある命令の
Sステージが完了した後のクロックサイクルでなければ、その値を参照する後続命令のOFステージを開始できない。
(1-3-1)
| クロックサイクル | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 命令1: MOV R1, (A) | IF | D | OF | EX | S | |||||||
| 命令2: MOV R2, (B) | IF | D | OF | EX | S | |||||||
| 命令3: ADD R1, R2 | - | - | IF | D | OF | EX | S |
(注:クロック2では命令3の IF が命令1の OF と競合してストール。続くクロック3でも命令3の IF が命令2の OF と競合してストールし、クロック4でようやく IF が実行可能となる。)
(1-3-2)
| クロックサイクル | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 命令1: MOV R1, (A) | IF | D | OF | EX | S | |||||||
| 命令2: INC R1 | IF | D | - | - | OF | EX | S | |||||
| 命令3: MOV (B), R1 | - | IF | D | - | - | - | OF | EX | S |
(注:前記「ある命令でレジスタに書き込まれた値を以降の命令で参照する場合, 前者の命令の格納 (S) が完了した後, 後者の命令のオペランドフェッチ (OF) が可能となる」という条件に注意してほしい。)
(2-1)
- (2-1-1) 平均アクセス時間 = (ヒット率 キャッシュアクセス時間) + (1 - ヒット率) ミス時のアクセス時間の和
- [ns]
- (2-1-2) 求めるキャッシュヒット率を とすると:
- 答:約 83.5%
(2-2)
-
(2-2-1) 空間的参照局所性:あるメモリアドレスが参照されたとき、その近傍のメモリアドレスが近い将来に参照される可能性が高い性質。(例:配列要素の順次アクセスや、命令の逐次実行など)
English: When a memory address is accessed, there is a high probability that nearby memory addresses will be accessed in the near future. Examples: sequential access of array elements, or the sequential execution of instructions.
-
(2-2-2) 時間的参照局所性:あるメモリアドレスが参照されたとき、同じアドレスが近い将来に再び参照される可能性が高い性質。(例:ループ内の変数や命令など)
English: When a memory address is accessed, there is a high probability that the same address will be accessed again in the near future. Examples: variables and instructions within a loop.
(2-3)
-
利点:システムのメモリアクセスにおいて、キャッシュメモリの「高速性」とメインメモリの「大容量・低コスト性」の両立を図ることができる点。
English: The advantage of forming a hierarchy between cache memory and main memory is the ability to achieve both the high speed of cache memory and the large capacity and low cost of main memory.
-
理由:プログラムの実行には(2-2)で説明した「参照の局所性」があるため、CPUからの要求の大部分(ヒット時)は小容量で高速なキャッシュメモリで処理できる。一部の要求(ミス時)のみ、大容量で低コストなメインメモリにアクセスすればよいため、システム全体の平均メモリアクセス時間を短縮しつつ、コストを抑えて大容量の記憶空間を提供できる。
English:
- Cache Memory: It leverages the principle of locality (temporal and spatial locality). Because the CPU frequently requests recently accessed or adjacent data, most memory accesses result in a cache hit. This significantly reduces the average memory access time compared to fetching data directly from the slower main memory.
- Main Memory: It provides a significantly larger storage capacity at a lower cost per byte. This allows the overall computer system to achieve a cost-effective balance between the high-speed processing capabilities of the cache and the large capacity requirements of executing programs.
Summary & Insights
大阪大学 情報科学研究科 情報工学 2015年8月実施 計算理論
Author
Description
(1) 有限オートマトン (finite automaton) は 5 項組 で与えられる。ここで, は,それぞれ,状態 (state) の有限集合,入力記号 (input symbol) の有限集合(アルファベット (alphabet)),状態遷移関数 (state transition function),初期状態 (initial state) (),受理状態 (accepting state) の集合 () である。 また, が受理 (accept) する言語 (language)(認識する言語)を と表す。下の状態遷移図 (state transition diagram) に示す非決定性 (non-deterministic) 有限オートマトン について,以下の各小問に答えよ。なお,,,, である。

- (1-1) が受理する言語 (language) を正規表現 (regular expression) で示せ。
- (1-2) が受理する語 (word) を,1 文字目を最上位ビット (most significant bit) とす符号なし 2 進数 (unsigned binary number) とみなす。 が受理するすべての語の中で,7 番目に小さな数となる語を示せ。
- (1-3) の状態 の -閉包 (-closure) を示せ。
- (1-4) を満たす,決定性 (deterministic) 有限オートマトン をサブセット構成 (subset construction) 法を用いて求め,状態遷移図で示せ。同値 (equivalent) な状態があっても全て残すこと。状態名は とすること。導出過程と結果を示すこと。
- (1-5) の状態数を最小化した決定性有限オートマトン を求め,状態遷移図で示せ。状態名は とすること。
(2) 文脈自由文法 (context-free grammar) により生成される文脈自由言語 (context-free language) の閉包性 (closure property) を考える。文脈自由文法 は 4 項組 で表される。ただし, は変数 (variable,あるいは非終端記号 non-terminal symbol) の集合, は終端記号 (terminal symbol) の集合, は生成規則 (production rule) の集合, は開始記号 (start symbol) で である。なお,生成規則の集合は -規則 (-rule) を含んでよいものとし,変数の集合と終端記号の集合は共通の記号を含まないものと仮定する。文法 が生成する言語を と表記する。 任意の文脈自由文法 と が与えられる(ただし である)。 文脈自由言語は和 (union) 演算に関して閉じている。なぜなら,文脈自由文法 を以下の通りに構成すると,証明は省略するが, と の和の言語 は によって生成される,すなわち は文脈自由言語だからである。
- ,ただし
文脈自由言語は連結 (concatenation) 演算に関して閉じていることを,文法の構成により示したい。以下の各小問に答えよ。
- (2-1) と を連結した言語 を生成する文脈自由文法 ,すなわち である を構成せよ。
- (2-2) 上記 (2-1) で構成した によって生成される任意の語 は,上記 (2-1) で定義した に属することを証明せよ。
- (2-3) 上記 (2-1) で定義した に属する任意の語 は,上記 (2-1) で構成した により生成されることを証明せよ。
Kai
(1) 有限オートマトンに関する問題
(1-1) 正規表現
が受理する言語の正規表現は以下の通りである。
(1-2) 7番目に小さな数となる語
受理される語を長さ順(および辞書順)に列挙し、2進数としての値を評価する:
- 長さ2:
10(値: 2) -> 1番目 - 長さ4:
1000(値: 8) -> 2番目,1110(値: 14) -> 3番目 - 長さ6:
100000(値: 32) -> 4番目,100110(値: 38) -> 5番目,111000(値: 56) -> 6番目,111110(値: 62) -> 7番目 したがって、7番目に小さな語は である。
(1-3) -閉包 (-closure)
各状態における -閉包は以下の通りである。
(1-4) サブセット構成法による DFA の導出
サブセット構成法を用いて、NFAの状態集合をDFAの単一状態としてマッピングする。初期状態 とする。
導出過程:
- (受理状態)
の状態遷移表: (※ はデッドステートへの遷移を表す)
| 状態 (NFA部分集合) | 入力 0 | 入力 1 |
|---|---|---|
| A | B | |
| B | C | D |
| *C | E | |
| D | F | |
| E | C | D |
| F | C | D |
(1-5) 状態を最小化した DFA
の遷移表に基づき、同値な状態(入力に対して同一の遷移先を持つ状態)をマージする。
等価クラスの判定:
- 状態 は全て非受理状態であり、入力
0で へ、入力1で へ遷移する。したがって、これらは完全に同値である。 - 状態 は共に非受理状態であり、入力
0で へ遷移する。入力1に対して、 は へ、 は へ遷移するが、 と は既に等価(クラス )であることが示されているため、 と も未来の遷移が完全に一致する同値な状態である。 - 受理状態 は単独でクラスを形成する。
の状態遷移図を構成する遷移:
- 状態集合:
- 初期状態:
- 受理状態:
- 遷移規則:
(注:この3状態DFAは、 において 0 を入力すると に行き、さらに 0 で に戻る(00 のループ)。1 を入力すると に戻され、さらに 1 で に復帰する(11 のループ)。これにより の言語を極めて美しく受理する。)
(2) 文脈自由言語の閉包性
(2-1) 文法 の構成
を生成する文脈自由文法 は以下のように構成される。
- (ただし、)
- 開始記号は とする。
English: To construct a Context-Free Grammar (CFG) that generates the concatenation of and , we introduce a new start symbol and a production rule , where and are the start symbols of and respectively.
Formally, is defined as: (where )
(2-2) の証明
証明: (Hint: を用いる)
によって生成される任意の語を とする。 の開始記号 に対する生成規則は のみであるため、導出の最初のステップは必ず以下となる。
文脈自由文法の性質上、各変数の導出は互いに独立している。したがって、生成される語 は と分割でき、それぞれ および が成り立つ。
ここで、 であるため、 から始まる導出において適用可能な生成規則は に含まれるものに限定される。よって、この導出は における導出 と完全に等価であり、 が成立する。
同様に、 からの導出も の規則のみを使用するため、 となる。 以上より、 が示され、 が証明された。
English: Let . Since the only production rule for is , any derivation must start as .
Because and are disjoint, the derivations from and are independent and use rules from and respectively. Thus, can be partitioned into and such that and , meaning .
(2-3) の証明
証明: に属する任意の語を とする。定義より、 (ただし )と表現できる。
および であるから、それぞれの文法において以下の導出が存在する。
の生成規則の集合 は、 および のすべての規則を含んでいる ()。したがって、上記の導出は においてもそのまま有効である。
において、新たな開始規則 を適用した後、上記の導出をそれぞれ と に適用することで、以下の導出系列を構成できる。
これにより、語 は文法 によって生成されることが示され、 が証明された。
English: Let . By definition, where and .
There exist derivations in and in . Since contains all rules from and plus , we can construct a derivation in starting from to . Hence, .
Summary
大阪大学 情報科学研究科 情報工学 2015年8月実施 ネットワーク
Author
Description
データリンク層 (data link layer) では、端末 (host) がフレーム (frame) を送信する際にプリアンブル (preamble) と呼ばれる特定のビット列を付与している。プリアンブルとフレームの構成は、図1 に示すものとする。以下の各問に答えよ。

図1 プリアンブルとフレーム構成
(1) 伝送レート (transmission rate) [bps] の伝送媒体 (transmission medium) を用いた場合に、上位層に対して提供できる最大の転送レート (transfer rate) を、 および図1 中の を用いて示せ。なお、インターフレームギャップ (inter-frame gap) は考えなくて良い。
(2) プリアンブルに関する以下の各小問に答えよ。
- (2-1) プリアンブルをフレームに付与する目的を述べよ。
- (2-2) プリアンブルのビット列として最も適切なものを、以下の四つの選択肢から一つ選び、記号を答えよ。また、選んだビット列が、最も適切である理由を説明せよ。
- 選択肢 A:00000111 00000110 00000101 00000100 00000011 00000010 00000001 00000000
- 選択肢 B:10101010 10101010 10101010 10101010 10101010 10101010 10101010 10101011
- 選択肢 C:11111111 11111111 11111111 11111111 00000000 00000000 00000000 00000000
- 選択肢 D:11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
- (2-3) プリアンブルと同一のビット列がペイロード (payload) に含まれる場合に生じる問題を述べよ。また、その問題を回避するためにイーサネット (Ethernet) で行われる方策を説明せよ。
(3) 図1 で与えられるフレームには、伝送誤り (transmission error) 検出を行うための FCS (frame check sequence) が含まれている。生成多項式 を用いた巡回冗長検査 (cyclic redundancy check) によりフレームの伝送誤りが検出される。すなわち、生成多項式 で定義される擬巡回符号 (pseudo-cyclic code) の符号語の冗長記号部分が FCS となり、誤り検出が行われる。以下の各小問に答えよ。ただし、生成多項式 は次の多項式とする。
- (3-1) FCS のサイズ [バイト] の値を答えよ。
- (3-2) 受信フレーム(誤り検出における受信語)の多項式表現を とする。巡回冗長検査において誤り無しと判断する条件式を、 と を用いて書け。
- (3-3) 生成多項式 を用いて検出できないビット誤り (bit error) の最小個数 を考える。フレーム長が 1000 [バイト] である時の を求めよ。求めた過程も簡単に書け。必要に応じて、 を生成多項式とする巡回符号の次数最小の符号語を表す多項式(符号多項式) をハミング重みごとにまとめた表1 を用いてよい。
| ハミング重み | |
|---|---|
| 1 | なし |
| 2 | なし |
| 3 | |
| 4 | |
| 5 | |
| 6 | |
| 7 |
表1 $G(x)$ を生成多項式とする巡回符号の次数最小の符号語を表す多項式 $c(x)$
- (3-4) 図1 のフレームの最大ペイロード長は 1500 [バイト] である。最大ペイロード長をその 10 倍の 15000 [バイト] に増やすことの利点と欠点を、巡回冗長検査の観点から簡潔に説明せよ。
- (3-5) 生成多項式 を用いたバースト誤り (burst error) 検出に関する以下の文章中で、 にあてはまる数値と空欄 [ ] にあてはまる多項式を書け。
フレーム内で、図2 に示すような 1 つのバースト誤りが発生したとする。その長さが [ビット] 以下であれば、確実にそのバースト誤りを検出できる。しかし、長さが [ビット] のときは、検出できない場合がある。例えば、送信フレーム(符号語)を表す多項式が 0 と等しく小問 (3-2) の多項式 が [ ] と等しいときに、そのバースト誤りを検出できない。
![長さ b [ビット] のバースト誤りの例](/_astro/4.gEvdgTO1_Z1mkm0T.webp)
図2 長さ b [ビット] のバースト誤りの例
Kai
(1)
最大転送レート:
導出: 最大の転送効率を得るには、ペイロードを最大値の バイトにする必要がある。図1 より、プリアンブルから FCS までのフレーム全体の合計サイズは以下の通りとなる。 したがって、物理的な伝送レート に対して、全ビット長に占める純粋なデータ(ペイロード)の割合を乗じることで、上位層に提供される実効的な最大転送レートが求まる。
English Translation for Derivation: To achieve the maximum transfer rate, the payload must be set to its maximum value of 1500 bytes. Based on Figure 1, the total frame length is bytes. The effective transfer rate is the physical transmission rate multiplied by the efficiency ratio of the payload to the total frame size.
(2)
(2-1)
解答: 受信側においてビット同期(クロック同期)を確立し、フレームの開始境界(バイト境界)を正確に特定するため。
English Translation: To establish bit synchronization (clock recovery) at the receiver and accurately identify the start boundary of the frame.
(2-2)
解答:
- 記号: B
- 理由:
1と0が交互に現れるビット列は、信号の電圧レベルの遷移(エッジ)が最も頻繁に発生し、受信側の PLL(位相同期回路)がクロック信号を抽出・同期するのに最適であるため。また、末尾の11(SFD: Start Frame Delimiter) によって、同期直後のデータ本体の開始を明確に識別できるから。
English Translation: Choice B. The alternating pattern of ‘1’s and ‘0’s provides the maximum number of signal transitions, which is ideal for the receiver’s PLL to maintain clock synchronization. The final ‘11’ (SFD) clearly marks the transition from the preamble to the data payload.
(2-3)
解答:
- 生じる問題: 誤同期 (False Synchronization)。ペイロード内のデータが偶然プリアンブルと一致した場合、受信側がそれをフレームの開始と誤認し、誤った位置から受信処理を開始してしまう問題。
- 回避策: フレームとフレームの間に無信号状態の インターフレームギャップ (IFG: Inter-Frame Gap) を設ける。受信側は、通信路がアイドル状態から立ち上がった直後の特定のビットパターンのみをプリアンブルとして処理することで、データ内の疑似パターンによる誤動作を回避している。
English Translation: Problem: False synchronization. The receiver might misinterpret payload data as a preamble.
Solution: Using an Inter-Frame Gap (IFG) ensures that only patterns appearing immediately after an idle state are recognized as valid preambles.
(3)
(3-1)
解答: 4 [バイト] (理由:生成多項式 の最大次数が 32 であるため、FCS は 32 ビット = 4 バイトとなる。)
(3-2)
解答:
(または、「 が で割り切れること」)
(3-3)
解答:
- の値: 4
- 求めた過程: フレーム長 1000 [バイト] は [ビット] である。表1 より、 の倍数となる最小次数の多項式(=検出不可能な誤りパターン)を調べると、ハミング重み 3 の最小次数は であり、 ビットのフレーム内では物理的に発生し得ない。一方、ハミング重み 4 の最小次数は であり、 ビットの範囲内に収まる。したがって、検出できない最小のビット誤り個数は 4 個である。
English Translation: A 1000-byte frame (8000 bits) is too short to contain a weight-3 undetectable error (minimum degree 91639). However, a weight-4 undetectable error (minimum degree 3006) can fit within this length. Thus, the minimum number of undetectable errors is 4.
(3-4)
解答:
- 利点: ヘッダや FCS などの固定オーバーヘッドがデータ全体に占める割合が低下し、実効的なデータ伝送効率(スループット)が向上する。
- 欠点: フレーム長が バイト ( ビット) になると、ハミング重み 3 の最小次数 () を上回ってしまう。これにより、従来は確実に検出できていた 3 ビットの誤りパターンがフレーム内に収まるようになり、誤り検出能力(最小ハミング距離)が低下する。
English Translation: Pros: Improved throughput due to lower overhead ratio.
Cons: Exceeding the minimum degree for weight-3 errors (91639) significantly reduces the error detection capability for 3-bit error patterns.
(3-5)
解答:
- 32
- 空欄 =
Summary & Insights
大阪大学 情報科学研究科 情報工学 2015年8月実施 離散構造
Author
Description
(1) 情報論理 (mathematical logic) に関する以下の各小問に答えよ. ただし, 論理式 (logic formula) の記述には以下の記号を用いる. はそれぞれ含意 (implication), 論理積 (conjunction, and), 論理和 (disjunction, or), 否定 (negation, not) を表す論理演算子とする. また, 必要に応じて (あるいは ) の表記を用いる. これは論理式 の を 1 から ( は正整数) まで順次変えながら論理積 (あるいは論理和) で結合した式を意味している. なお, は, を意味する.
縦 マス 横 マスで構成されるパズル (puzzle) を考える. 本パズルにおける規則は以下の通りである.
- 空いているマスに 1 から までの整数を入れる.
- 各列, 各行および, 太線で囲まれた の各ブロック内に同じ整数を複数用いてはいけない.
図 1 は, における本パズルの問題例である. 以降, このパズル問題を解くための制約式を和積形 (CNF: Conjunctive Normal Form) の命題論理式 (propositional formula) で与えることを考える. なお, 和積形とは, 一つ以上の和項の論理積で表される論理式である. また, 和項とは, 一つ以上のリテラル (literal) の論理和で表される論理式である. ここでリテラルとは, 命題変数 (propositional variable) または命題変数の否定を意味する. () 行 () 列のマスを で表記する (行は上から順に 行目, 列は左から順に 列目である).

図 1: の問題例
マス に整数 () が入っているとき, かつ, そのときのみ真となる命題変数 を導入する. 以下の各小問に答えよ.
- (1-1) 図 1 において命題変数 の真偽をそれぞれ答えよ.
- (1-2) 縦 マス 横 マスで構成される本パズル問題における命題変数 の総数はいくつか. を用いて示せ.
- (1-3) 「1 行 1 列目のマスには, 1 以上 9 以下の整数が少なくとも一つ入る」ことを表す論理式を記述せよ.
- (1-4) CNF 式 を「 行 列目のマスには, 1 以上 以下の整数が少なくとも一つ入る」ことを表す論理式とする. 論理式 を記述せよ.
- (1-5) を用いて, 「どのマスについても, 1 以上 以下の整数が少なくとも一つ入る」ことを表す論理式 を示せ.
- (1-6) は, 「 がともに真になるということはない」ことを表す論理式である. これを用いて「どの行についても各整数は高々1回しか現れない」ことを表す CNF 式 を作りたい. 以下の空欄を埋めることで を完成させよ.
- (1-7) 「どの列についても各整数は高々1回しか現れない」ことを表す CNF 式 を示せ.

図 2: の問題
- (1-8) この小問では, として, 図 2 の問題に着目する.
図 2 の問題では, 空いたマス (例えば 2 行 4 列目) にどのように整数を埋めても, パズルを解くことができない. ここでは, (命題 P) 「図 2 の問題では, 空いたマスにどのように整数を埋めても, パズルを解くことができない」ことを示したい. この命題 P を示すには, 「太線で囲まれた のどのブロックについても各整数が高々1回現れる」ことを意味する CNF 式を , 図 2 における整数の配置を表す論理式を としたときに, (方針) の CNF 式が充足不能 (unsatisfiable) であることを示せればよい。 このとき, 以下の (1-8-1)~(1-8-2) に答えよ.
- (1-8-1) 論理式 を示せ.
- (1-8-2) 上記の方針に沿って, 命題 P が成り立つことを導出原理 (resolution principle) 用いて具体的に示せ.
(2) 空でない有限集合 (finite set) 上の二項関係 (binary relation) について, 次のように二項関係 と () を定義する. また, の各要素を頂点とし, の各要素を有向辺とする有向グラフ (directed graph) を とする. ただし に対しては, を有向辺の始点とし, を有向辺の終点とする.
以下の各小問に答えよ.
- (2-1) 有向グラフ が下図の時, を求めよ.

- (2-2) ある非負の整数 が存在して であることを, 背理法 (proof by contradiction) を用いて証明せよ.
- (2-3) 小問 (2-2) の について, の逆関係 (inverse relation) を とし, とする. が同値関係 (equivalence relation) であることを証明せよ. ただし, 任意の非負整数 について, ならば が成立することは, 証明なしで用いてよい.
- (2-4) 小問 (2-3) の について, の による同値類 (equivalence class) を とする. が, グラフ について何を表すか簡潔に述べよ.
Kai
(1-1) 命題変数の真偽
図1の盤面に基づく命題変数 (行列のマスに整数が入る)の真偽は以下の通りです。
- : 偽 (False) (※図1において1行1列目の数字は7であるため)
- : 真 (True) (※図1において2行1列目の数字は4であるため)
- : 偽 (False) (※図1において8行4列目の数字は6であるため)
(1-2) 命題変数の総数
解説:行が 通り、列が 通り、入る整数が 通りあり、これらは独立した組み合わせであるため、全体の変数総数は となります。
(1-3) 存在制約論理式(、1行1列目のマス)
「1行1列目のマスには、1以上9以下の整数が少なくとも一つ入る」ことを表す論理式は以下の通りです。
(1-4) CNF式 (一般化されたマスの存在制約)
「行列目のマスには1以上以下の整数が少なくとも一つ入る」ことを表す論理式は以下の通りです。
(1-5) 論理式 (全マスの存在制約)
「どのマスについても1以上以下の整数が少なくとも一つ入る」ことを表す論理式 は以下の通りです。
(1-6) 論理式 の空欄(行内の競合制約)
「どの行についても各整数は高々1回しか現れない」ことを表すための空欄に入る論理式は以下の通りです。
(1-7) CNF式 (列内の競合制約)
「どの列についても各整数が高々1回しか現れない」ことを表すCNF式 は以下の通りです。
(1-8-1) 論理式
図2()で与えられた確定マスに基づく初期配置の論理式は以下の通りです。
(1-8-2) 導出原理(Resolution Principle)を用いた命題 P の証明
【日本語解答】 空いたマス に着目する。制約 より、このマスには 1 から 4 のいずれかが入るため、以下の和項が存在する。
また、 および制約 (行), (列), (ブロック)より、以下の和項が CNF 式に含まれる。
- (制約 D:ブロック1内に 2 は複数存在しない)
- (制約 B:2行目に 2 は複数存在しない)
- (制約 B:2行目に 4 は複数存在しない)
の各要素はすべて真であるため、単一リテラル(Unit Clause)として導出に用いる。
- と から導出原理により を得る。
- 同様に、ブロック制約 D と の要素から を得る。
- 同様に、行制約 B と から を得る。
- 同様に、列制約 C(あるいはブロック制約 D)と の要素から を得る。
これら 4 つの否定リテラル を に対して順次導出(Unit Resolution)すると、すべてのリテラルが消去され、最終的に 空節(、矛盾) が導出される。 したがって、CNF式は充足不能(Unsatisfiable)であり、パズルを解くことはできない。
[English Translation] Focus on the empty cell . From constraint , this cell must contain an integer from 1 to 4, yielding the following clause:
Given and the conflict constraints (row), (column), and (block), the CNF formula includes clauses such as:
- (Constraint B: no duplicate ‘2’s in row 2)
- (Constraint B: no duplicate ‘4’s in row 2)
Since elements in are all true, they act as unit clauses.
- Applying the resolution principle on and yields .
- Similarly, applying resolution with block constraint D and an element of yields .
- Applying resolution with and row constraint B yields .
- Applying resolution with column/block constraints and yields .
By sequentially resolving these four negated literals against the initial clause (Unit Resolution), all literals are eliminated, ultimately deriving the empty clause (, contradiction). Therefore, the CNF formula is unsatisfiable, proving that the puzzle cannot be solved.
(2-1) の算出
【日本語解答】 は、与えられた有向グラフ において、任意の頂点 から有向辺を正確に「3歩(3エッジ)」辿って到達できる頂点 のペア の集合である。
(2-2) となる非負整数 の存在証明
【日本語解答】 背理法を用いて証明する。 頂点集合 は有限集合であるため、直積集合 の要素数も有限である( とすると )。 定義 より、 が成り立つ。
仮に、任意の非負整数 について であると仮定する。これは、 が常に の真部分集合 () であることを意味する。 すなわち、要素数において が無限に続くことになり、ある段階で要素数が を超過する。 しかし、 であるため、要素数が を超えることはあり得ない。これは矛盾である。 したがって、ある非負整数 が存在して となる。
[English Translation] We prove this by contradiction. Since the vertex set is a finite set, the Cartesian product is also finite (if , then ). By definition , the sequence monotonically increases: .
Assume, for the sake of contradiction, that for all non-negative integers . This implies that is a strict subset of () universally. Consequently, the cardinality strictly increases infinitely: , which means it will eventually exceed . However, since , its cardinality can never exceed . This is a contradiction. Therefore, there must exist a non-negative integer such that .
(2-3) が同値関係であることの証明
【日本語解答】 が同値関係であることを示すために、以下の3条件を満たすことを証明する。
-
反射律 (Reflexivity): 任意の について、定義より であり、。よって である。逆関係の定義から も成り立つ。したがって、。
-
対称律 (Symmetry): とすると、定義より かつ である。 逆関係の定義 より、 かつ となる。したがって、。
-
推移律 (Transitivity): かつ とする。 かつ であるため、ある が存在して となる。問題文の仮定より、 である。ここで はこれ以上要素が増加しない閉包状態 () であるため、 が成り立ち、。 同様に、逆関係側でも かつ より となり、その逆関係である も成り立つ。 したがって、。
以上より、 は同値関係である。
[English Translation] To prove that is an equivalence relation, we must show it satisfies the following three properties:
Reflexivity: For any , by definition, and since , we have . By the definition of the inverse relation, . Thus, .
Symmetry: Assume . By definition, and . Using the definition of the inverse relation (), we obtain and . Therefore, .
Transitivity: Assume and . This implies and . Thus, there exist integers such that and . Based on the given assumption, . Since is in a closed state where no new elements are added (), , yielding . Through the exact same logic on the inverse relations, and yields , which is equivalent to . Therefore, .
Conclusively, is an equivalence relation.
(2-4) 同値類 が表すもの
【日本語解答】 有向グラフ における、頂点 を含む 強連結成分 (Strongly Connected Component)。
[English Translation] The Strongly Connected Component (SCC) containing vertex within the directed graph .
Share Article
Generate a share poster or copy the link to share this article.
Continue reading
Take another route
A consistent pick from other articles
Last updated on , 140 days ago
Some content may be outdated
Comments