大阪大学 情報科学研究科 情報工学 2018年度 必須問題&選択問題
Author
1 【必須問題】アルゴリズムとプログラミング
Description
配点: (1-1) 15点, (1-2) 10点, (1-3) 30点, (2-1) 20点, (2-2-1) 30点, (2-2-2) 20点
図1に示すANSI-C準拠であるC言語のプログラム(program)は任意の2人が同じ組織(organization)に所属するか判定し、その結果を出力(output)するものである。人(構成員(member)と呼ぶ)は 人( は正の整数(positive integer))存在し、各構成員には直属の上司(direct supervisor)である構成員が1人以下(1 or less)存在する。組織は一つ以上存在し、各組織は、各構成員を節点(ノード(node))、その直属の上司を親(parent)とする木(tree)で表される。同じ組織に所属する構成員は、その組織の最上位の上司を根(root)とする一つの木を構成する。
各構成員にはそれぞれ の整数(integer)が構成員番号として重複なく付与されている。配列(array)p は構成員番号 i である構成員の直属の上司の構成員番号を要素(element)として p[i] に格納し、直属の上司が存在しない場合は自身の構成員番号を格納する。このデータ構造を用い、関数 same は2人の構成員番号を引数とし、同じ組織に所属するかどうかを標準出力に出力する。input.txt,pair.txt という図2および図3にそれぞれ示すようなフォーマットのファイルが存在するものとし、図1のプログラムでそれらを読み込み実行する。input.txt の1行目には構成員の総数 ( は N_MAX 以下の正の整数)、2行目以降の各行には、構成員とその直属の上司の構成員番号のペア(pair)がこの順で書かれている。pair.txt の各行には、同じ組織に所属するか判定したい構成員のペアの構成員番号が書かれている。以下の各問に答えよ。
(1)
図1のプログラムは,図2の input.txt と図3の pair.txt を読み込み実行する。以下の各小問に答えよ。
(1-1)
21〜29行目で読み込まれる全ての木を示せ。ただし図4にならい,丸でノードを,丸の中の数字で構成員番号を,線で枝(edge)を表すこと。
(1-2)
find(x) が意味する内容を,x を用いて説明せよ。
(1-3)
14行目の空欄 A に当てはまる式を,15行目の空欄 B に当てはまる条件式をそれぞれ書け。
(2)
非常に大きな数の構成員に対し,多数の無作為に選ばれた構成員のペアのそれぞれが同じ組織に所属するか判定したい。そのため,このようなデータを含む input.txt および pair.txt を図1のプログラムで読み込み実行する。ただし,図1のプログラム2行目の N_MAX の値を適切に変更するものとする。以下の各小問に答えよ。
(2-1)
関数 same を実行する際の,1回当たりの平均時間計算量(average time complexity)をオーダ表記(order notation)で表せ。また理由も答えよ。ただし,ノードの平均の深さ(average depth)を とする。
(2-2)
ここで,関数 find の9行目を変更し,最上位の上司を格納するように配列 p を更新することで,実行時間を短縮できる場合がある。以下に答えよ。
(2-2-1)
変更後の9行目を一文で書け。
(2-2-2)
関数 same を十分大きな回数実行した場合に漸近する,1回当たりの平均時間計算量をオーダ表記で表せ。また理由も答えよ。
Kai
(1-1)
- 日本語 (Japanese):
(0) (1) (5)| / \(2) (3) (7)/ \(4) (6)|(8)|(9)
- 英語 (English): [The three trees illustrated in the ASCII diagram above]
- 中文解析 (Chinese Analysis):
根据
input.txt的输入:- ,初始化时每个节点 的父节点为自身,即
p[i] = i。 - 之后依次读入
i与sv,执行p[i] = sv。这表示sv是i的直属上司(父节点)。 - 读入的边为:, , , , , , 。
- 其余节点如 的
p值保持不变,仍为自身,即它们是各自树的根节点。 因此得到三个不同的树结构如上所示。
- ,初始化时每个节点 的父节点为自身,即
(1-2)
- 日本語 (Japanese):
構成員
xが属する組織の最上位の上司(木の根の構成員番号)を返す。 - 英語 (English):
It returns the top supervisor (the root of the tree) of the organization to which member
xbelongs. - 中文解析 (Chinese Analysis):
find(x)沿着父指针p[x]递归向上查找,直到找到p[root] == root的根节点并将其返回。在题目背景中,这意味着寻找成员x所属组织的最上位上司(即代表者)。
(1-3)
- 日本語 (Japanese):
A:find(y)B:n == m
- 英語 (English):
A:find(y)B:n == m
- 中文解析 (Chinese Analysis):
在
same(x, y)中,要判断x和y是否在同一组织中。- 13行已有
n = find(x);。 - 14行需要求出
y的代表者并赋给m,因此空栏A填find(y)。 - 15行若二者在同一组织中,则根节点应该相同,因此空栏
B填n == m。
- 13行已有
(2-1)
- 日本語 (Japanese):
理由:
関数
sameは内部で関数find(x)とfind(y)を呼び出す。find処理は引数で指定されたノードから根に向かって親への参照をたどるため、その計算量は探索するパスの長さに比例する。ノードの平均の深さが であるため、findの1回当たりの平均時間計算量は となる。よって、sameの平均時間計算量も である。 - 英語 (English):
Reason:
The function
samecallsfind(x)andfind(y)internally. The helper functionfindtraverses the path from the target node up to the root. Since the average depth of nodes in the trees is , the average number of steps required to reach the root is proportional to . Thus, the average time complexity offindand consequentlysameis . - 中文解析 (Chinese Analysis):
- 平均时间复杂度:
- 原因:函数
same执行了两次对find的调用。在未进行路径压缩的情况下,find必须逐级向上访问父节点直到根节点。由于节点的平均深度为 ,路径的平均长度即为 。因此,find和same的平均时间复杂度均为 。
(2-2-1)
- 日本語 (Japanese):
return p[x] = find(p[x]); - 英語 (English):
return p[x] = find(p[x]); - 中文解析 (Chinese Analysis):
将第9行修改为带有赋值的递归调用
return p[x] = find(p[x]);可以实现路径压缩(Path Compression)。它在查找到根节点后,顺便将路径上所有经过的节点直接连接到根节点下。
(2-2-2)
- 日本語 (Japanese):
(または )
理由:
パス圧縮(path compression)を行う場合、一度
findが実行されると、その探索経路上にあるすべてのノードが根に直接接続される。そのため、以降の探索ではほぼ定数ステップで根に到達できるようになる。sameを十分に多い回数実行した場合、アモルタライズされた(ならし)1回当たりの時間計算量は、実質的に定数時間 (厳密には逆アッカーマン関数 )に漸近する。 - 英語 (English):
(or )
Reason:
When path compression is applied, each call to
findupdates the parent pointers of all traversed nodes to point directly to the root. As a result, subsequent lookups for these nodes take constant time. When the operation is repeated a large number of times, the amortized cost per operation asymptotically approaches (or more formally, the inverse Ackermann function , which is practically constant for any physical input size). - 中文解析 (Chinese Analysis):
- 渐近平均时间复杂度:(或 )
- 原因:当应用路径压缩后,每次查询根节点时,该路径上的所有节点都会被直接挂接到根节点上。随着
same操作次数的不断增加,树的高度会被极大地压扁。在进行了足够多次操作后,绝大多数节点都直接指向根节点,因而单次操作的平均(摊还)时间复杂度趋向于常数级别 。若从并查集(Disjoint Set Union)的严格摊还分析来看,其复杂度为 ,其中 是增长极其缓慢的反阿克曼函数,实际中可视为 。
2 【必須問題】計算機システムとシステムプログラム
Description
配点: (1-1) 8点, (1-2) 10点, (1-3-1) 18点, (1-3-2) 29点, (2-1) 18点, (2-2-1) 27点, (2-2-2) 10点, (2-2-3) 5点
(1)
キャッシュメモリ(cache memory)および仮想記憶(virtual memory)を含む,計算機(computer)の記憶システム(memory system)に関する以下の各問に答えよ.解答は全て解答用紙の太線枠内に書くこと.
(1-1)
キャッシュメモリや仮想記憶では,(a)「一度アクセス(access)されたアドレス(address)は近いうちに再アクセスされる可能性が高い」,(b)「一度アクセスされたアドレスに近接するアドレスは,近いうちにアクセスされる可能性が高い」というメモリアクセスの性質が一般に利用されている.これらの性質の名称を記せ.
(1-2)
(a) キャッシュメモリを導入することによる効果,(b) 仮想記憶を導入することによる効果を,それぞれ一つずつ,簡潔に記せ.
(1-3)
キャッシュメモリおよび仮想記憶を有し,以下の箇条書きに示す仕様(specification)を持つ記憶システムを考える.なお,論理アドレス(logical address)から物理アドレス(physical address)への変換が,CPUとキャッシュメモリの間で行われる場合と,キャッシュメモリと主記憶(main memory)の間で行われる場合の,二通りの方式がある.前者は物理アドレスキャッシュと呼ばれ,物理アドレスを用いてキャッシュメモリへのアクセスが行われる.後者は論理アドレスキャッシュと呼ばれ,論理アドレスを用いてキャッシュメモリへのアクセスが行われる.ここでは,これら双方の方式について考える.この記憶システムに関し,(1-3-1),(1-3-2) に答えよ.
- アドレスは1[バイト]([byte])毎に付与される.
- キャッシュメモリのマッピング(mapping)方式は,直接マッピング(direct mapping)方式.
- キャッシュメモリの1[ブロック]([block])は2[バイト].
- キャッシュメモリ容量は8[バイト].但し,タグ(tag)等に必要な容量は,これには含まれない.
- 仮想記憶の制御方式は,ページング(paging)方式.
- 仮想記憶の1[ページ]([page])は8[バイト].
- 主記憶容量は32[バイト].但し,実際のシステムでは主記憶上にページングの対象とならない領域が存在するが,ここでは,便宜上,主記憶の全ての領域がページングの対象となるものとする.
- 仮想記憶容量は256[バイト].
(1-3-1)
以下の値 (a)〜(f) を記せ. (a) 論理アドレスを表すのに必要な最小ビット長(minimum bit length)[ビット]([bit]). (b) キャッシュメモリ内のブロック数. (c) ページテーブル(page table)のエントリー(entry)数. (d) 主記憶内におけるページ番号を表すのに必要な最小ビット長[ビット]. (e) 物理アドレスキャッシュにおける,キャッシュメモリの各タグの最小ビット長[ビット]. (f) 論理アドレスキャッシュにおける,キャッシュメモリの各タグの最小ビット長[ビット].
(1-3-2)
物理アドレスキャッシュにおいて,サイクル(cycle)0〜7 に,以下の表に示す順に論理アドレスが参照されたとする.初期状態において,キャッシュメモリ内のブロックは空であり,主記憶内のページ枠(page frame)0〜3 には,それぞれ,仮想記憶内のページ 0, 1, 2, 31 が割り当てられているとする.主記憶,仮想記憶,共に,アドレス 0 からページ 0 が始まり,連続してページが配置されるものとする.0〜7 の各サイクルでの,(a) 参照論理アドレスに対応する主記憶内のブロック番号,(b) アクセスされるキャッシュメモリ内のブロック番号,(c) アクセスされるキャッシュメモリブロックのタグの値を示せ.また,(d) サイクル 0〜7 におけるキャッシュヒット率を示せ.
| サイクル | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|---|
| 参照論理アドレス | 0 | 1 | 2 | 3 | 4 | 8 | 21 | 255 |
(2)
ファイルシステム(file system)に関する以下の各小問に答えよ.解答は全て解答用紙の太線枠内に書くこと.
(2-1)
以下の文中の中の空欄 (ア) 〜 (カ) それぞれに最も適切な語を選択肢から一つ選び,その記号を答えよ.ただし,同じ選択肢を複数回用いてはならない.
ファイルシステムは,ファイルをファイル装置(file device)に割り付ける(allocate)等のファイル管理機能を提供する.ファイルは,ブロック(block)と呼ばれるファイル装置上の最小構成単位(minimum configuration unit)でファイル装置に物理的に格納されており,ファイルへのアクセス(access)もブロック単位で行われる.ファイルへのアクセス方式には,ファイルを構成する先頭ブロックから末尾に向かってアクセスする
(ア)と,ファイルを構成するブロックのいずれにも任意順にアクセスできる(イ)がある.
(イ)の場合のファイル割り付け方式を考える.ファイル装置上の連続したブロックに格納する連続ファイル割り付け(contiguous file allocation)を用いると,ファイル生成時に(ウ)を見積もる必要があるという問題や,ファイル装置上の未使用領域が(エ)した状態になるといった問題が生じる.これらの問題を回避するため,各ブロックへのポインタ配列(array of pointers)を索引ブロックに格納しておく(オ)や,各ブロックに次のブロックへのポインタ(アドレス)を持たせておく(カ)等が用いられる.
選択肢
(A) インデックスファイル割り付け(索引ブロックを用いた割り付け, indexed file allocation), (B) 直接アクセス (direct access), (C) 非断片化 (defragmentation), (D) プロセス割り付け (process allocation), (E) 最大ファイルサイズ (maximum file size), (F) 順アクセス(逐次アクセス, sequential access), (G) 断片化 (fragmentation), (H) アクセス時間 (access time), (I) リンクファイル割り付け(連結リスト割り付け, linked file allocation)
(2-2)
ブロックサイズ(block size)が [バイト],ブロックのアドレスの長さが [バイト]で構築されたファイルシステムに,以下の三つの方式それぞれによってファイルを割り付けることを考える.
- (i) 連続ファイル割り付け
- (ii) リンクファイル割り付け
- (iii) インデックスファイル割り付け
なお,方式 (ii) において,各ブロックには,次のブロックのアドレスを格納する容量が必要となることに注意せよ.また,方式 (iii) において,各ファイルの索引は一つの索引ブロックに収まるものとする.解答に際しては,床関数(floor function)(実数 以下の最大の整数を返す関数)や,天井関数(ceiling function)(実数 以上の最小の整数を返す関数)を用いて良い.次の (2-2-1)〜(2-2-3) に答えよ.
(2-2-1)
ファイルサイズ [バイト]のファイルを,方式 (i)〜(iii) のそれぞれによってファイルシステムに割り付けた場合を考え,以下の (a)〜(c) を求めよ.なお,(a),(b) を求める際には,次の二点に注意せよ.
- 各ブロックへの事前アクセスは無く,初めてアクセスするものとする.
- 同一ブロックへ複数回アクセスする場合であっても,アクセスするブロック数は 1 である.
(a) ファイルの ()[バイト]目まで順にアクセスする場合に,アクセスするブロック数. (b) ファイルの ()バイト目のみにアクセスする場合に,アクセスするブロック数. (c) ファイルを格納するのに必要となるファイル装置上の最小サイズ (ブロックサイズの整数倍)[バイト].
(2-2-2)
ファイル装置上の最小サイズ に対するファイルサイズ の割合を利用効率 ()として定義する.また,ブロックサイズに対するファイルサイズの比を ()として定義する.(2-2-1) の結果を踏まえて,方式 (i) と (iii) のそれぞれについて, に対する利用効率 の変化を, の範囲で図示せよ.
(2-2-3)
(2-2-2) の結果を踏まえて, が大きくなるにつれて,方式 (i) の利用効率に対する方式 (iii) の利用効率の比がどのように変化するか,簡潔に述べよ.
Kai
(1-1)
- 日本語 (Japanese):
- (a) 時間局所性 (Temporal Locality)
- (b) 空間局所性 (Spatial Locality)
- 英語 (English):
- (a) Temporal locality
- (b) Spatial locality
- 中文解析 (Chinese Analysis):
局部性原理(Principle of Locality)包括:
- 时间局部性(a):若一个内存位置被访问,则它在不久的将来很可能会再次被访问(例如循环中的变量)。
- 空间局部性(b):若一个内存位置被访问,则其附近的内存位置在不久的将来很可能会被访问(例如数组的连续访问)。
(1-2)
- 日本語 (Japanese):
- (a) メモリアクセスの高速化(CPUの平均データアクセス待ち時間を短縮し、実行効率を向上させる)。
- (b) メモリ空間の拡大と保護(物理主記憶の容量制限を超えたプログラムの実行を可能にし、プロセス間の独立したアドレス空間を確保する)。
- 英語 (English):
- (a) Speed up memory access (reduce the average CPU wait time for data access and improve execution efficiency).
- (b) Expand and protect memory space (allow execution of programs larger than the physical main memory and isolate address spaces between processes).
- 中文解析 (Chinese Analysis):
- 引入高速缓存(a)的作用在于缓解CPU与主存之间的速度鸿沟,利用局部性原理将常用数据缓存在极高速的 SRAM 中,提高平均访存速度。
- 引入虚拟内存(b)的作用在于:1. 扩充地址空间(使大程序能在小内存机器上运行);2. 内存隔离与保护(各进程拥有独立的虚拟地址空间,互不干扰)。
(1-3-1)
- 日本語 (Japanese):
- (a) 8
- (b) 4
- (c) 32
- (d) 2
- (e) 2
- (f) 5
- 英語 (English):
- (a) 8 bits
- (b) 4 blocks
- (c) 32 entries
- (d) 2 bits
- (e) 2 bits
- (f) 5 bits
- 中文解析 (Chinese Analysis):
- (a) 虚拟内存容量为 字节,按字节寻址。因此逻辑地址长度为 位。
- (b) 高速缓存容量为 字节,块大小为 字节。因此缓存块数为 块。
- (c) 页面大小为 字节,虚拟内存为 字节。页面数为 ,因此页表项数为 。
- (d) 主存容量为 字节,页面大小为 字节。物理页框数为 。物理页框号所需比特数为 位。
- (e) 在物理地址缓存(Physical Address Cache)中,缓存使用物理地址进行访问。主存 字节对应物理地址长度为 位。这 5 位物理地址被划分为:
- 块内偏移量: 位。
- 缓存索引(Index): 位。
- 标记(Tag):物理地址长度 - 索引 - 偏移 = 位。
- (f) 在逻辑地址缓存(Logical Address Cache)中,缓存使用逻辑地址进行访问。逻辑地址长度为 8 位。划分如下:
- 块内偏移量: 位。
- 缓存索引: 位。
- 标记(Tag):逻辑地址长度 - 索引 - 偏移 = 位。
(1-3-2)
- 日本語 (Japanese):
- 各サイクルの値:
- サイクル 0: (a) 0, (b) 0, (c) 0
- サイクル 1: (a) 0, (b) 0, (c) 0
- サイクル 2: (a) 1, (b) 1, (c) 0
- サイクル 3: (a) 1, (b) 1, (c) 0
- サイクル 4: (a) 2, (b) 2, (c) 0
- サイクル 5: (a) 4, (b) 0, (c) 1
- サイクル 6: (a) 10, (b) 2, (c) 2
- サイクル 7: (a) 15, (b) 3, (c) 3
- (d) キャッシュヒット率: (または )
- 各サイクルの値:
- 英語 (English):
- Values for each cycle:
- Cycle 0: (a) 0, (b) 0, (c) 0
- Cycle 1: (a) 0, (b) 0, (c) 0
- Cycle 2: (a) 1, (b) 1, (c) 0
- Cycle 3: (a) 1, (b) 1, (c) 0
- Cycle 4: (a) 2, (b) 2, (c) 0
- Cycle 5: (a) 4, (b) 0, (c) 1
- Cycle 6: (a) 10, (b) 2, (c) 2
- Cycle 7: (a) 15, (b) 3, (c) 3
- (d) Cache hit rate: (or )
- Values for each cycle:
- 中文解析 (Chinese Analysis):
- 页面大小为 字节。物理页框 0, 1, 2, 3 分别映射虚拟页面 0, 1, 2, 31。
- 虚拟页面 0(LA 0-7) 物理页框 0(PA 0-7)。
- 虚拟页面 1(LA 8-15) 物理页框 1(PA 8-15)。
- 虚拟页面 2(LA 16-23) 物理页框 2(PA 16-23)。
- 虚拟页面 31(LA 248-255) 物理页框 3(PA 24-31)。
- 物理地址缓存使用物理地址访问,块大小为 2 字节。
- 主存块号:。
- 缓存块号:主存块号 。
- 标记(Tag):(即物理页框号 PFN)。
- 逐步追踪过程:
- C0: LA=0 Page 0 PFN 0 PA=0 主存块=0 缓存块=0 Tag=0。(Miss,填入缓存块 0,Tag=0)
- C1: LA=1 Page 0 PFN 0 PA=1 主存块=0 缓存块=0 Tag=0。(Hit!)
- C2: LA=2 Page 0 PFN 0 PA=2 主存块=1 缓存块=1 Tag=0。(Miss,填入缓存块 1,Tag=0)
- C3: LA=3 Page 0 PFN 0 PA=3 主存块=1 缓存块=1 Tag=0。(Hit!)
- C4: LA=4 Page 0 PFN 0 PA=4 主存块=2 缓存块=2 Tag=0。(Miss,填入缓存块 2,Tag=0)
- C5: LA=8 Page 1 PFN 1 PA=8 主存块=4 缓存块=0 Tag=1。(Miss,缓存块 0 原本为 Tag 0 ,替换为 Tag 1)
- C6: LA=21 Page 2 PFN 2 PA=16+5=21 主存块=10 缓存块=2 Tag=2。(Miss,缓存块 2 原本为 Tag 0 ,替换为 Tag 2)
- C7: LA=255 Page 31 PFN 3 PA=24+7=31 主存块=15 缓存块=3 Tag=3。(Miss,填入缓存块 3,Tag=3)
- 8次访问中命中2次,因此命中率为 。
- 页面大小为 字节。物理页框 0, 1, 2, 3 分别映射虚拟页面 0, 1, 2, 31。
(2-1)
- 日本語 (Japanese):
- (ア): (F) 順アクセス
- (イ): (B) 直接アクセス
- (ウ): (E) 最大ファイルサイズ
- (エ): (G) 断片化
- (オ): (A) インデックスファイル割り付け
- (カ): (I) リンクファイル割り付け
- 英語 (English):
- (ア): (F) sequential access
- (イ): (B) direct access
- (ウ): (E) maximum file size
- (エ): (G) fragmentation
- (オ): (A) indexed file allocation
- (カ): (I) linked file allocation
- 中文解析 (Chinese Analysis):
- 文件的访问方式分为顺序访问((F))和直接/随机访问((B))。
- 连续文件分配因为是连续分配的,需要在一开始就确定分配的最大块数,故需要预估最大文件大小((E))。其带来的另一个问题是磁盘上的外部碎片问题(即断片化 (G))。
- 为了解决这些问题,可以使用索引文件分配((A))——将指针存储在专门的索引块中;或者使用链接文件分配((I))——在每个数据块中存储指向下一个块的指针。
(2-2-1)
- 日本語 (Japanese):
- (a) 順アクセス時のアクセスブロック数:
- 方式 (i):
- 方式 (ii):
- 方式 (iii):
- (b) 特定バイトのみアクセス時のアクセスブロック数:
- 方式 (i):
- 方式 (ii):
- 方式 (iii):
- (c) 最小サイズ :
- 方式 (i):
- 方式 (ii):
- 方式 (iii):
- (a) 順アクセス時のアクセスブロック数:
- 英語 (English):
- (a) Number of accessed blocks for sequential access:
- Method (i):
- Method (ii):
- Method (iii):
- (b) Number of accessed blocks for accessing only the -th byte:
- Method (i):
- Method (ii):
- Method (iii):
- (c) Minimum size :
- Method (i):
- Method (ii):
- Method (iii):
- (a) Number of accessed blocks for sequential access:
- 中文解析 (Chinese Analysis):
- (a) 顺序读取前 字节:
- 方式 (i) 连续分配:只需要按序读取包含前 字节的数据块即可,数据块数为 。
- 方式 (ii) 链接分配:每个物理块中有 字节存储下一个块的地址,可用数据容量为 字节。为了得到前 字节,需要顺序读取并沿着指针遍历,读取的块数为 。
- 方式 (iii) 索引分配:首先需要读取一次索引块(计作1次访问),然后再读取包含前 字节的数据块(数量为 )。因此总共访问 个块。
- (b) 仅访问第 字节:
- 方式 (i) 连续分配:因为地址是连续的,可以通过简单的数学计算 得到目标物理块号,直接一步读取该块。因此只需访问 个块。
- 方式 (ii) 链接分配:无法直接定位,必须从文件的第一个块开始通过指针逐个向后查找,直到第 个块。总访问块数为 。
- 方式 (iii) 索引分配:首先读取索引块获取对应的块指针,然后读取该特定数据块。总共访问 个块(索引块 + 数据块)。
- (c) 存储大小 :
- 方式 (i) 连续分配:文件占用 个块,占用字节数为 。
- 方式 (ii) 链接分配:每个块有效容量为 ,共需 个块,占用字节数为 。
- 方式 (iii) 索引分配:需要 个数据块以及 个索引块,总共 个块。总字节数为 。
- (a) 顺序读取前 字节:
(2-2-2)
- 日本語 (Japanese):
- 方式 (i): 。 において鋸歯状(のこぎり刃状)のグラフとなる。
- : 。 で , で 。
- : 。 で , で 。
- : 。 で , で 。
- 方式 (iii): 。 各区間で右上がりの一次関数となり、境界で不連続に下降する。
- : 。 で , で 。
- : 。 で , で 。
- : 。 で , で 。
- 方式 (i): 。 において鋸歯状(のこぎり刃状)のグラフとなる。
- 英語 (English):
- Method (i): . The graph forms a sawtooth shape in the range :
- For : , scaling linearly from 0 to 1 (at ).
- For : , scaling linearly from (just above ) to 1 (at ).
- For : , scaling linearly from (just above ) to 1 (at ).
- Method (iii): . The graph increases linearly within each interval, dropping discontinuously at the boundaries:
- For : , scaling from 0 to (at ).
- For : , scaling from to (at ).
- For : , scaling from to (at ).
- Method (i): . The graph forms a sawtooth shape in the range :
- 中文解析 (Chinese Analysis):
- 方式 (i) 的利用率 。其曲线呈锯齿状:
- 在每个区间 上, 恒定,利用率 是斜率为 的一次函数。
- 在 点处利用率均达到最大值 。
- 方式 (iii) 的利用率 。其曲线也呈锯齿状,但由于索引块的额外开销,数值明显偏低:
- 在每个区间 上,,利用率 。
- 当 时,;当 时,;当 时,。
- 方式 (i) 的利用率 。其曲线呈锯齿状:
(2-2-3)
- 日本語 (Japanese): 比は増加し、1 に近づく。
- 英語 (English): The ratio of the utilization efficiency of method (iii) to method (i) increases and asymptotically approaches 1.
- 中文解析 (Chinese Analysis): 两者的利用率比值为 。 当 增大时, 随之增大,使得额外的 个索引块占总块数的比例下降。因此,比值 会不断上升并渐近趋近于 。
4 【選択問題】計算理論
Description
配点: (1-1) 16点, (1-2-1) 14点, (1-2-2) 15点, (2-1) 15点, (2-2) 15点, (2-3) 10点, (2-4) 10点, (2-5) 15点
(1)
入力アルファベットが である有限オートマトンに関する以下の各問に答えよ.
(1-1)
次の状態遷移図 (i)〜(iv) で与えられる非決定性有限オートマトン(non-deterministic finite automaton)のそれぞれにおいて,受理される語(word)の集合を表す正規表現(regular expression)を,下の選択肢 1〜8 から一つずつ選び,その番号を答えよ.
選択肢
(1-2)
10進数(decimal)で表現された正の整数(positive integer)のうち,3 で割り切れるものを受理するオートマトンを考える.なお,10 進数で表現された正の整数を 3 で割った余りは,その正の整数を構成する各桁の数の和を 3 で割った余りと等しくなることを利用して良い.例えば,1221 や 222111 は受理される語(word)であるが,1211 や 2222 は受理されない語である.
(1-2-1)
決定性有限オートマトン(deterministic finite automaton)は で表される.ただし, は状態(state)の有限集合, は入力アルファベット(input alphabet), は遷移関数(transition function), は開始状態, は最終状態の集合である.決定性有限オートマトン を用いて実現する場合, の状態遷移図を書け.開始状態には太い矢印を付与すること.最終状態は二重丸で表現すること.簡単化のため,入力アルファベット は とする.
(1-2-2)
プッシュダウンオートマトン(pushdown automaton)は で表される.ただし, は状態の有限集合, は入力アルファベット, はスタックアルファベット, は遷移関数, は開始状態, はスタックの開始記号, は最終状態の集合である.最終状態による受理(acceptance by final state)を行うプッシュダウンオートマトン を用いて実現する場合,以下の状態遷移図の (あ) の部分に必要な動作を全て答えよ.なお, (あ) の上部にすでに記述されている (2,1)/ε および (1,2)/ε は解答用紙に記述する必要はない. は空列を表す.スタックアルファベット は とする.簡単化のため,入力アルファベット は とする.
[開始] ──> q0 ── (1, Z)/1Z ──> q1 ── (ε, Z)/Z ──> ((q2)) (2, Z)/2Z | | (あ) v [loop](あ) の上部に記述されている動作: (2,1)/ε, (1,2)/ε
(2)
文脈自由文法(context-free grammar)は一般に で定められる.ただし は変数(variable; 非終端記号 nonterminal symbol)の集合, は終端記号(terminal symbol)の集合, は生成規則(production rule)の集合, は出発記号(start symbol)であり, である.文脈自由文法 を以下の通り定め, により生成される言語を で表す.以下の各小問に答えよ.
なお, に含まれる列(sequence; 語 word)は,左括弧(left parenthesis)と右括弧(right parenthesis)のバランス(balance)がとれているものである.列のバランスがとれているとは,その列の中の列 () の削除を1回以上可能な限り繰り返すと,最終的に空列 が得られるとき,およびその時の高をいう.例えば列 ((())) や列 ()()() はバランスがとれているが,列 )(()() や列 (())(() はバランスがとれていない.
(2-1)
に含まれる長さ(length)が 6 以下の列を全て記せ.
(2-2)
列 ()()() に対する構文木(parse tree)で,互いに異なるもの全てを図示せよ.
(2-3)
列 ()()()() に対する構文木で互いに異なるものは全部で何個あるか,数を答えよ.求め方は示さなくてよい.
(2-4)
列 ()()()()() に対する構文木で互いに異なるものは全部で何個あるか,数を答えよ.求め方は示さなくてよい.
(2-5)
バランスのとれている任意の列が に含まれることを,列の長さに関する帰納法(induction)で証明したい.証明を完成させるために,空欄 (ア) 〜 (エ) を適切な内容で埋めよ.ただし,文形式(sentential form) に対して生成規則を 1 回適用して文形式 が得られるとき, と表記する.また,文形式 に対して生成規則を 0 回以上適用して文形式 が得られるとき, と表記する.
証明
バランスのとれている列の長さは正の偶数(even number)である.
- 長さ 2 のバランスがとれている列,すなわち列
()の場合,導出(derivation)(ア)により,この列は に含まれる. - 長さ 以下(ただし は 2 以上の偶数)のバランスがとれている任意の列は に含まれると仮定する.長さ のバランスがとれている任意の列を とおく.バランスがとれている二つの列 と に対し, の形に分解できる場合と,できない場合の 2 通りがある.
- の形に分解できる場合:
はそれぞれ長さが 以下のバランスがとれている列なので,帰納法の仮定から はともに に含まれる.すなわち かつ である.従って,導出
(イ)により,列 は に含まれる. - の形に分解できない場合:
このとき,長さ のバランスがとれている列 が存在して,
(ウ)の形をしている. の長さは なので,帰納法の仮定から は に含まれる.すなわち である.従って,導出(エ)により,列 は に含まれる.(証明終)
- の形に分解できる場合:
はそれぞれ長さが 以下のバランスがとれている列なので,帰納法の仮定から はともに に含まれる.すなわち かつ である.従って,導出
Kai
(1-1)
- 日本語 (Japanese):
- (i) 7 (正規表現: )
- (ii) 8 (正規表現: )
- (iii) 6 (正規表現: )
- (iv) 3 (正規表現: )
- 英語 (English):
- (i) 7 (Regular expression: )
- (ii) 8 (Regular expression: )
- (iii) 6 (Regular expression: )
- (iv) 3 (Regular expression: )
- 中文解析 (Chinese Analysis):
- (i) 该 NFA 包含三个状态。唯一的接受路径需要经过两次标签为 的转移。其余在状态上环绕的转移为 。所以该机接受包含恰好两个 的字符串,对应的正规表达式为 。这与选项 7 匹配。
- (ii) 该 NFA 是一个有向环结构,包含三个状态。每个转移都接受 或 。要从起点到达接受状态,必须经过 次转移。因此,可接受串的长度必须模 3 余 1(即 长度的串)。其表示为 长度的任意串接上一个任意字符,对应的正规表达式为 。这与选项 8 匹配。
- (iii) 通过 NFA 状态转移搜索和化简,该状态机识别的语言是包含至少一个 且在第一个 之前只有 和 的某种组合,本质上等价于 。这与选项 6 匹配。
- (iv) 起始状态具有自环 和 。接受状态具有自环 和 。二者之间由 和 的转换连接。对应的语言描述为:前半部分由 和 构成,后半部分由 和 构成。即 。这与选项 3 匹配。
(1-2-1)
- 日本語 (Japanese):
状態遷移表 (State Transition Table):=======> ((p0)) <─── 2 ─── p1| ^ ^ || └──── 1 ──────┘ |1 2| |v vp1 ──── 1 ───> p2 ──> p0 (on 1)p2 ─── 2 ───> p1
状態 入力 1 入力 2 p0 (開始・最終) p1 p2 p1 p2 p0 p2 p0 p1 - 英語 (English):
The state transition diagram of the DFA :
- States: .
- Start & Final state: (represented with a double circle and a thick incoming arrow).
- Transitions:
- , .
- , .
- , .
- 中文解析 (Chinese Analysis):
- 状态代表当前数字累加和模 3 的余数。起始终止状态均为 (余数为 0)。
- 转移逻辑:
- 状态(余数为 0):输入 1 转移到 (余数 1),输入 2 转移到 (余数 2)。
- 状态(余数为 1):输入 1 转移到 (余数 2),输入 2 转移到 (余数 0)。
- 状态(余数为 2):输入 1 转移到 (余数 0),输入 2 转移到 (余数 1)。
(1-2-2)
- 日本語 (Japanese):
(1, 1) / 2(2, 2) / 1(1, Z) / 1Z(2, Z) / 2Z
- 英語 (English):
(1, 1) / 2(2, 2) / 1(1, Z) / 1Z(2, Z) / 2Z
- 中文解析 (Chinese Analysis):
通过 PDA 的栈模拟累加和模 3 的状态。
栈顶为 代表当前余数为 0,为 代表当前余数为 1,为 代表当前余数为 2。
- 若输入与栈顶代表值相加等于 3(即 1 与 2 组合),则发生抵消,直接弹出栈顶。题目中已有
(2,1)/ε和(1,2)/ε表示此类情况。 - 若栈顶为 :
- 输入 1:入栈 1,即
(1, Z) / 1Z。 - 输入 2:入栈 2,即
(2, Z) / 2Z。
- 输入 1:入栈 1,即
- 若相同元素相加:
- 栈顶为 1,输入 1:余数变为 2,应将栈顶 1 替换为 2,即
(1, 1) / 2。 - 栈顶为 2,输入 2:余数变为 ,应将栈顶 2 替换为 1,即
(2, 2) / 1。
- 栈顶为 1,输入 1:余数变为 2,应将栈顶 1 替换为 2,即
- 若输入与栈顶代表值相加等于 3(即 1 与 2 组合),则发生抵消,直接弹出栈顶。题目中已有
(2-1)
- 日本語 (Japanese):
()、()()、(())、()()()、()(())、(())()、(()())、((())) - 英語 (English):
(),()(),(()),()()(),()(()),(())(),(()()),((()) - 中文解析 (Chinese Analysis):
文法中没有 这一项,因此最短生成的串为
(),长度只能为偶数。- 长度 2:
() - 长度 4:
()(),(()) - 长度 6:
()()(),()(()),(())(),(()()),((()))
- 长度 2:
(2-2)
- 日本語 (Japanese):
Tree 1: Tree 2:A A/ \ / \A A A A/ \ | | / \A A () () A A| | | |() () () ()
- 英語 (English): [The two parse trees illustrated in the ASCII diagram above]
- 中文解析 (Chinese Analysis):
对于串
()()(),仅能通过 和 这两组规则生成。 因为该串包含三个(),所以树的派生在第一步 后,要么左边的 进一步分裂为 (对应(()())()结构),要么右边的 进一步分裂为 (对应()(()())结构)。故仅有上述两棵不同的构型树。
(2-3)
- 日本語 (Japanese): 5
- 英語 (English): 5
- 中文解析 (Chinese Analysis):
对于仅包含 个独立小括号对
()组成的字符串()()...(),因为不能使用 的规则(否则会出现嵌套),所以构建不同构型语法树的方法数等价于对 个元素进行完全二叉树划分(加括号)的方法数。 根据组合数学,这符合卡特兰数(Catalan Number) 。 对于()()()(), ,因此不同语法树的数目为 。
(2-4)
- 日本語 (Japanese): 14
- 英語 (English): 14
- 中文解析 (Chinese Analysis): 同理,对于 5 个独立括号对,其语法树数量对应第 4 个卡特兰数: 。
(2-5)
- 日本語 (Japanese):
(ア):()(イ):AA(ウ):(y)(エ):(A)
- 英語 (English):
(ア):()(イ):AA(ウ):(y)(エ):(A)
- 中文解析 (Chinese Analysis):
(ア):当长度为 2 时,直接应用规则 ,因此填()。(イ):当 可以拆分为两个平衡括号串 时,在归纳法中通过 进行推导,因此填AA。(ウ):当 不能拆分为两个非空的平衡括号串时,说明 的首尾是一对相匹配的括号。因此它必须以(开始,以)结束,即 ,其中 也是一个平衡括号串且长度为 。因此填(y)。(エ):对应上述情况,使用文法规则 并结合归纳假设 导出 。因此填(A)。
5 【選択問題】ネットワーク
Description
配点: (1-1) (あ)〜(う) 各2点, (え)〜(け) 各4点, (1-2) 10点, (1-3) 10点 (2-1) (a)〜(c) 各6点, (d) 12点, (2-2) 25点, (2-3) 20点
(1)
2元ハミング符号(binary Hamming code)に関する以下の文章について,各小問に答えよ.
次の行列を検査行列(parity check matrix)とする2元ハミング符号を考える.
この符号の符号長(code length)は (あ) であり,情報記号数(the number of information symbols)は (い) である.したがって,符号化率(code rate)は (う) となる.次の行列はこの符号の生成行列(generator matrix)である.
一般に2元ハミング符号では,最小距離(minimum distance) は (お) であり,冗長記号数(the number of redundancy symbols)を とするとき,その符号長は (か) となる.また,その検査行列は,どの列ベクトル(列要素)(column vector)も零ベクトルではなく,各列ベクトルは全て相異なるという性質をもつ.したがって,冗長記号数が同じと仮定すると,2元ハミング符号より符号化率が高い2元ブロック符号の最小距離は (お) より小さくなる(i) ことがわかる.
さて,2元対称通信路(binary symmetric channel)で,2元ハミング符号に対して限界距離(bounded distance) の復号(decoding)を行う場合,受信語中のビット誤りの個数が (き) 個以下の場合は正しく復号(訂正)できるが,それより多い場合は必ず誤って復号する(ii).なお,限界距離復号を行う方法として,受信語と (く) 行列から求められる (け) を用いる方法がよく知られている.
注. 限界距離 の復号法は,受信語から距離 以内に符号語が存在すればその符号語に復号し,そうでなければ復号に失敗する.
(1-1)
空欄 (あ) 〜 (け) を埋めよ.
(1-2)
下線部 (i) が成り立つ理由を述べよ.
(1-3)
下線部 (ii) が成り立つ理由について,検査行列の性質(二重下線部)を用いて述べよ.
(2)
イーサネット(Ethernet)で使用される多重アクセス制御方式(multiple access)の一つである CSMA/CD (Carrier Sense Multiple Access / Collision Detection) 方式に関する説明文を読み,以下の各小問に答えよ.
ブロードキャスト型ネットワーク(broadcast network)において,複数のホスト(host)が同時にフレーム(frame)を送出すると,フレームが回線上で衝突する.CSMA/CD 方式においては,各ホストはフレームを送出する前に搬送波検知(carrier sense)を行い,他のホストがすでにフレームを送出していることが検知された場合にはフレーム送出を遅らせ,そうでない場合は直ちにフレームを送出する.また,フレーム送出中にも衝突検出(collision detection)を行い,フレーム送出中に衝突を検出すると送出を中止する.
(2-1)
以下は,イーサネットで使用される CSMA/CD 方式においてフレームの衝突を検出した後に用いられるバックオフアルゴリズム(backoff algorithm)に関する説明文である.文中 (a) から (c) の空欄を適切な用語または数式で埋めよ.また,下線部 (d) の処理を行う理由を述べよ.
衝突を検出してフレーム送出を中止したホストは,時間 だけ待った後に当該フレームの再送を試みる. は各ホストで
(a)に選択される.また,連続して衝突する回数が増えるに従って の平均が大きくなるようにする(d).CSMA/CD 方式において用いられる
(b)バックオフアルゴリズムでは,連続して衝突する回数が増えるに従って再送待ち時間(retransmission time)を指数関数的に増大させる.当該フレームの 回目の再送においては, を満たす整数 を(a)に選択し,最大往復伝播遅延時間(slot time)を としたとき(c)後にフレームを再送する.このとき, は以下のように決定される.なお,15回を超える再送は行わない.
(2-2)
イーサネットにおいて 10BASE-5 と呼ばれる規格では,回線容量が 10[Mbps]であり,同軸ケーブル(coaxial cable)を使用している.また,最小フレーム長は 64[byte],最大フレーム長は 1518[byte]である.
10BASE-5 においては,ホスト間の最大距離は 2.5[km](リピータ使用時)と規定されている.衝突検出の観点から,この規定が適切であることを最小フレーム長との関係に基づいて説明せよ.ただし,同軸ケーブルの信号伝播速度は [km/s]とする.
(2-3)
CSMA/CD 方式とは別の多重アクセス制御方式として Pure ALOHA 方式がある.Pure ALOHA 方式においては,CSMA/CD 方式のような搬送波検知や衝突検出を行わず,送信側ホストはフレームをすぐに送出する.一方,受信側ホストはフレームを受信すると ACK(確認応答)を送信側ホストに通知する.送信側ホストは,ある時間以内に ACK を受け取らなければフレームを再送する.
回線の混雑度合いが低い時と高い時のそれぞれにおける,Pure ALOHA 方式を用いた場合の回線のスループット(throughput, 単位時間当たりの伝送成功フレーム数)について,CSMA/CD 方式と比較してその高低を理由とともに説明せよ.ただし,フレーム長は全て等しいものとする.また,搬送波検知にかかる時間は無視できるものとする.
Kai
(1-1)
- 日本語 (Japanese):
- (あ): 7
- (い): 4
- (う): 4/7
- (え):
- (お): 3
- (か):
- (き): 1
- (く): 検査
- (け): シンドローム
- 英語 (English):
- (あ): 7
- (い): 4
- (う): 4/7
- (え):
- (お): 3
- (か):
- (き): 1
- (く): parity check (matrix)
- (け): syndrome
- 中文解析 (Chinese Analysis):
- (あ) 校验矩阵 的大小为 ,列数即为码长,故码长为 7。
- (い) 的行数表示校验位数 ,因此信息位数 。
- (う) 编码率 。
- (え) 可以写为 。生成矩阵 在系统码形式下写为 。 转置 的前 4 列为: 对 转置得到矩阵 :
- (お) 二元哈明码的最小码距 恒等于 3。
- (か) 具有 个校验位的哈明码,其码长公式为 。
- (き) 该码能纠正的错误比特数为 比特。
- (く), (け) 限界距离译码通常通过接收字与校验矩阵相乘计算伴随式(Syndrome,又称信噪)来进行错误定位。
(1-2)
- 日本語 (Japanese): 同じ冗長記号数 を持つ場合、検査行列 の行数は であり、 の列ベクトル(列要素)として取り得るすべての非零の列ベクトルの種類数は 個である。ハミング符号の符号長はちょうど であり、検査行列のすべての列が非零で互いに異なっている。ハミング符号より符号化率が高いブロック符号は、同じ のもとで符号長 が より大きくなる。鳩の巣原理により、この検査行列には必ず零ベクトルである列が存在するか、あるいは少なくとも2つの同一の列ベクトルが存在する。列ベクトルに零ベクトルが存在すれば最小距離は1となり、2つの同一の列ベクトルが存在すれば(その和が零ベクトルになるため)最小距離は2以下となる。したがって、最小距離はハミング符号の最小距離 3 より必ず小さくなる。
- 英語 (English): If a block code has the same number of redundancy symbols , its parity check matrix has rows, and the maximum number of distinct non-zero column vectors of length is . The binary Hamming code achieves the maximum possible code length with all columns being distinct and non-zero. A block code with a higher code rate under the same must have a code length . By the Pigeonhole Principle, its parity check matrix must contain either a zero column vector or at least two identical column vectors. A zero column implies a minimum distance of 1, and two identical columns imply a minimum distance of at most 2. Thus, the minimum distance must be strictly less than 3.
- 中文解析 (Chinese Analysis):
校验位为 时,校验矩阵 的行数为 。长为 的非零二元列向量共有 种。
哈明码达到了该最大容量限制,其码长为 ,矩阵 中包含了所有可能的非零列向量且互不相同。
若某纠错码在相同冗余位 下具有更高的编码率,其码长 必须大于 。
根据鸽巢原理,其校验矩阵的 列中必然会出现:
- 包含零列向量,此时最小码距为 1。
- 包含至少两列完全相同的列向量,其异或和为零向量,此时最小码距为 2。 在这两种情况下,最小码距都将小于哈明码的最小码距 3。
(1-3)
- 日本語 (Japanese): 受信語を ( は送信符号語, は誤りパターン)とすると,シンドロームは となる。誤りが1ビット(位置 )の場合, は重み1のベクトルになり,シンドローム は検査行列 の第 列ベクトル に一致する。 のすべての列ベクトルが非零かつ相異なるため,1ビット誤りのパターンと非零シンドロームは1対1に対応し,正しく訂正できる。しかし,誤りが2ビット(位置 と )の場合,シンドロームは となる。 であるため,その和 は非零ベクトルとなり, のある第 列ベクトル ( )に一致する。このとき,限界距離復号法は に基づいて第 ビットに1ビットの誤りが発生したと判断し,第 ビットを反転するため,誤った符号語に復号される。よって,1個より多い誤りがある場合は必ず誤って復号される。
- 英語 (English): The syndrome of a received word is given by . When there is exactly 1 bit error at position , the error vector has weight 1, and the syndrome is equal to the -th column of . Since all columns of are distinct and non-zero, there is a unique one-to-one mapping between any single-bit error and the syndrome, guaranteeing correct decoding. However, if there are 2 bit errors at positions and , the syndrome is . Since , their sum is a non-zero vector that must match some column of (where ). Bounded distance decoding will incorrectly assume a single-bit error occurred at position and flip bit , leading to an incorrect codeword. Hence, any error count greater than 1 results in incorrect decoding.
- 中文解析 (Chinese Analysis):
伴随式为 。
- 当发生 1 位错误(在第 位)时,错误向量 仅在第 位为 1,此时计算得到的 正好是校验矩阵的第 列 。由于 的所有列向量均非零且互不相同,每一个单比特错误都有唯一对应的非零伴随式,因此能被无误纠正。
- 当发生 2 位错误(在第 和第 位)时,伴随式 。由于 ,它们的和也是一个非零向量。因为 包含了所有可能的非零向量,所以 必然等于 中的某另一列 ()。此时限界距离译码器会判定在第 位发生了单比特错误并对其进行纠正,从而导致译码错误,恢复出错误的码字。
(2-1)
- 日本語 (Japanese):
- (a): ランダム
- (b): 二進指数(または 指数)
- (c):
- 下線部 (d) の処理を行う理由: 連続して衝突が発生することは、ネットワークの混雑度(負荷)が高いことを示している。再送待ち時間の選択範囲(ウィンドウサイズ )を指数関数的に拡大し、平均待ち時間を大きくすることで、各ホストが再送するタイミングを時間的により広く分散させ、再衝突の確率を下げるため。
- 英語 (English):
- (a): randomly
- (b): binary exponential (or exponential)
- (c):
- Reason for performing the process in underline (d): Consecutive collisions indicate a high traffic load and congestion on the network. By expanding the backoff window size exponentially and increasing the average waiting time, the retransmission timings of the conflicting hosts are spread wider in time, thereby lowering the probability of subsequent collisions and alleviating network congestion.
- 中文解析 (Chinese Analysis):
- (a) 整数 是在区间 中随机(randomly)选取的。
- (b) 该算法为二进指数退避算法(binary exponential backoff)。
- (c) 延迟时间为随机数 乘以时隙时间 ,即 。
- 折返等待时间增加的原因 (d): 连续发生冲突说明当前网络负载极高,处于拥堵状态。通过指数级扩大退避窗口范围 ,使冲突节点选择的随机等待时间在时间轴上更广泛地分散开来,从而显著降低再次发生碰撞的概率,避免拥堵持续加剧。
(2-2)
- 日本語 (Japanese): 10BASE-5規格における伝送速度は であり、最小フレーム長は である。よって、最小フレームの送出にかかる時間は以下の通りとなる。 一方、信号伝播速度を とすると、ホスト間の最大距離 における片道伝播遅延時間は であり、最大往復伝播遅延時間は以下の通りとなる。 CSMA/CD方式において、送信ホストが衝突を正しく検出するためには、フレームの送出完了前に最遠端から返ってくる衝突信号を受信する必要がある。すなわち、最小フレーム送出時間 が最大往復伝播遅延時間 以上である必要がある( )。 本規定では が成り立っているため、送信ホストはフレームの送出中に必ず衝突を検出することができる。したがって、最大距離 2.5 km という規定は適切である。
- 英語 (English): The transmission rate is , and the minimum frame length is . Thus, the transmission time for a minimum-sized frame is: For a maximum distance and propagation speed , the one-way propagation delay is . The maximum round-trip propagation delay (RTT) is: Under CSMA/CD, to guarantee that a transmitting host detects any collision before it finishes sending a frame, the frame transmission time must be at least the round-trip propagation delay (i.e., ). Since is satisfied in 10BASE-5, the transmitting host is guaranteed to detect any collision while transmitting. Thus, the 2.5 km maximum distance specification is appropriate.
- 中文解析 (Chinese Analysis):
根据规格:
- 传输速率 。
- 最小帧长 。
- 最小帧的发送时间为 。 同轴电缆中信号的传播速度为 ,在最大距离 下:
- 单向传播延迟 。
- 往返传播延迟(RTT)为 。 在 CSMA/CD 协议中,为了使发送端能够在帧发送完毕前检测到碰撞,必须满足“最小帧发送时间大于等于往返传播延迟”(即 )的条件。 本系统中 成立,这确保了即使在最极端情况下发生碰撞,发送端也一定能在帧完全发出之前收到碰撞检测信号。因此该规定是合理的。
(2-3)
- 日本語 (Japanese):
- 回線の混雑度合いが低い時: 両方式のスループットはほぼ同等である。混雑度が低い時はフレームの衝突確率が非常に低いため、Pure ALOHAのように搬送波検知をせずに即時送出しても、CSMA/CDのようにチャネルを確認してから送出しても、ほとんどのフレームが1回で送信に成功するからである。
- 回線の混雑度合いが高い時: CSMA/CD方式の方がPure ALOHA方式よりもスループットが大幅に高くなる。Pure ALOHAでは他ホストの送信状況を確認せずにフレームを送出するため、高負荷時にはフレームが頻繁に衝突する。さらに衝突検出機能がないため、衝突後もフレーム全体を送信し続け、チャネル帯域を無駄に消費する。一方、CSMA/CDでは搬送波検知によってチャネル使用中の無駄な送信開始を防ぎ、さらに衝突発生時には即座に送信を中止してチャネルを解放するため、チャネルの利用効率(スループット)を高く維持できる。
- 英語 (English):
- Under low traffic conditions: The throughput of both methods is almost equal. Because the probability of frame collision is extremely low when traffic is light, almost all frames succeed on the first attempt, regardless of whether hosts transmit immediately without carrier sensing (Pure ALOHA) or sense the channel first (CSMA/CD).
- Under high traffic conditions: CSMA/CD achieves significantly higher throughput than Pure ALOHA. In Pure ALOHA, hosts transmit immediately when they have data, causing frequent collisions under heavy traffic. Since it lacks collision detection, colliding frames are transmitted to completion, wasting channel bandwidth. In contrast, CSMA/CD avoids starting transmission when the channel is busy via carrier sensing, and aborts transmission immediately upon detecting a collision to free the channel, keeping channel efficiency and throughput much higher.
- 中文解析 (Chinese Analysis):
- 低信道拥挤度(轻载)时: 两者的吞吐量基本相同。因为在网络负载很低时,帧碰撞的概率极小,无论是 Pure ALOHA 不做任何检测直接发送,还是 CSMA/CD 监听信道后再发送,绝大多数帧都能一次性发送成功。
- 高信道拥挤度(重载)时: CSMA/CD 的吞吐量明显高于 Pure ALOHA。因为 Pure ALOHA 属于完全随机接入,不检测信道状态,在重载下会导致频繁的帧冲突;且由于没有碰撞检测机制,即使发生冲突也会完整发送整个受损帧,极大地浪费了带宽(最大吞吐量仅为 )。而 CSMA/CD 通过载波监听防止了在信道繁忙时发送帧,并且一旦发生冲突能立即终止发送并释放信道,避免了带宽的无谓浪费,因此在高负载下仍能保持较高的吞吐效率。