Solutions for Section 2.2
Exercise 2.2.1(a)
States correspond to the eight combinations of switch positions, and also must indicate whether the previous roll came out at D, i.e., whether the previous input was accepted. Let 0 represent a position to the left (as in the diagram) and 1 a position to the right. Each state can be represented by a sequence of three 0's or 1's, representing the directions of the three switches, in order from left to right. We follow these three bits by either a indicating it is an accepting state or r, indicating rejection. Of the 16 possible states, it turns out that only 13 are accessible from the initial state, 000r. Here is the transition table:
杠杆可能出现8种情况,影响着最终状态。并且也要说明,前面一个大理石球是否从D滚出,也就是说,前一个输入是否被接受。令 0 代表向左方的状态(如图表), 1 代表向右方。这三个杠杆的每一个状态都可以用三个数(0或1)组成的序列表示。这个序列后面跟着字母a或者r。a代表接受状态,r代表拒绝状态。16种可能的状态中,只有13种是从初始状态000r可达的。下面它的有穷自动机的转移表。
A | B | |
->000r | 100r | 011r |
*000a | 100r | 011r |
*001a | 101r | 000a |
010r | 110r | 001a |
*010a | 110r | 001a |
011r | 111r | 010a |
100r | 010r | 111r |
*100a | 010r | 111r |
101r | 011r | 100a |
*101a | 011r | 100a |
110r | 000a | 101a |
*110a | 000a | 101a |
111r | 001a | 110a |
Exercise 2.2.2
The statement to be proved is δ-hat(q,xy) = δ-hat(δ-hat(q,x),y), and we proceed by induction on the length of y.
证明:通过对|y|进行归纳,来证明(q , xy)=((q , x) , y) ,具体过程如下:
Basis: If y = ε, then the statement is δ-hat(q,x) = δ-hat(δ-hat(q,x),ε). This statement follows from the basis in the definition of δ-hat. Note that in applying this definition, we must treat δ-hat(q,x) as if it were just a state, say p. Then, the statement to be proved is p = δ-hat(p,ε), which is easy to recognize as the basis in the definition of δ-hat.
基础: =0,则y=ε。那么需证(q,x)=((q ,x),ε),记p=(q,x),命题变为 p=(p ,ε), 由的定义知这显然成立。
Induction: Assume the statement for strings shorter than y, and break y = za, where a is the last symbol of y. The steps converting δ-hat(δ-hat(q,x),y) to δ-hat(q,xy) are summarized in the following table:
归纳: 假设命题对于比 y 短的串成立, 且y = za, 其中 a 是y的结尾符号。((q,x),y) 到(q,xy) 的变换总结在下表中:
Expression 表达式 | Reason 原因 |
((q,x),y) | Start 开始 |
((q,x),za) | y=za by assumption 由假设y=za |
δ(((q,x),z),a) | Definition of δ-hat, treating δ-hat(q,x) as a state 的定义, 把(q,x) 看作是一个状态 |
δ((q,xz),a) | Inductive hypothesis 归纳假设 |
(q,xza) | Definition of δ-hat 的定义 |
(q,xy) | y=za |
Exercise 2.2.4(a)
The intuitive meanings of states A, B, and C are that the string seen so far ends in 0, 1, or at least 2 zeros.
状态 A, B,C分别表示以1,0和00结尾的串的状态。
0 | 1 | |
->A | B | A |
B | C | A |
*C | C | A |
Exercise 2.2.6(a)
The trick is to realize that reading another bit either multiplies the number seen so far by 2 (if it is a 0), or multiplies by 2 and then adds 1 (if it is a 1). We don't need to remember the entire number seen --- just its remainder when divided by 5. That is, if we have any number of the form 5a+b, where b is the remainder, between 0 and 4, then 2(5a+b) = 10a+2b. Sinc
e 10a is surely divisible by 5, the remainder of 10a+2b is the same as the remainder of 2b when divided by 5. Since b, is 0, 1, 2, 3, or 4, we can tabulate the answers easily. The same idea holds if we want to consider what happens to 5a+b if we multiply by 2 and add 1.
对于一个二进制整数,如果读入一个比特0,其值等于原数乘以2;否则等于原数乘以2再加以1。而任意一个数均可写成形如5a+b,其中a任意,0<= b <=4,那么输入0,原数变为2(5a+b) = 10a+2b,由于10a 是5的倍数,,因此10a+2b 除以5的余数与2b相同。输入1,则得2(5a+b)+1类似。因此对于所有的数只要记住它被5除的余数就可以。由于b是 0, 1, 2, 3或者 4, 我们可以容易得到该DPA的转移表,具体如下:
The table below shows this automaton. State qi means that the input seen so far has remainder i when divided by 5.
其中状态qi 代表输入串被5除的余数i 的状态。
0 | 1 | |
->*q0 | q0 | q1 |
q1 | q2 | q3 |
q2 | q4 | q0 |
q3 | q1 | q2 |
q4 | q3 | q4 |
There is a small matter, however, that this automaton accepts strings with leading 0's. Since the problem calls for accepting only those strings that begin with 1, we need an additional state s, the start state, and an additional ``dead state'' d. If, in state s, we see a 1 first, we act like q0; i.e., we go to state q1. However, if the first input is 0, we should never accept, so we go to state d, which we never leave. The complete automaton is:
但是上述自动机仍接受以0开头的字符串。因为题目要求只接受以1开头的串,可增加一个初始状态s和“死亡状态”d。在状态初始状态s, 若看到1,则转到状态q1;若看到0, accessible是什么意思中文则直接转到状态d,识别终止。所求自动机如下:
0 | 1 | |
->s | d | q1 |
*q0 | q0 | q1 |
q1 | q2 | q3 |
q2 | q4 | q0 |
q3 | q1 | q2 |
q4 | q3 | q4 |
d | d | d |
Exercise 2.2.9
Part (a) is an easy induction on the length of w, starting at length 1.
Basis: |w| = 1. Then δ-hat(q0,w) = δ-hat(qf,w), because w is a single symbol, and δ-hat agrees with δ on single symbols.
Induction: Let w = za, so the inductive hypothesis applies to z. Then δ-hat(q0,w) = δ-hat(q0,za) = δ(δ-hat(q0,z),a) = δ(δ-hat(qf,z),a) [by the inductive hypothesis] = δ-hat(qf,za) = δ-hat(qf,w).
证明:a) 通过对w长度的归纳证明。
基础: 若|w| = 1,则w 是一个符号,此时需证(q0,w) = (qf,w), 而对于单个符号扩展转移函数与转移函数δ的作用是一样的,得证。
归纳: 令w = za, 假设对于z命题(q0,z) = (qf,z)成立。那么(q0,w) = (q0,za) = δ((q0,z),a) = δ( (qf,z),a) [由归纳假设] = (qf,za) = (qf,w).
For part (b), we know that δ-hat(q0,x) = qf. Since xε, we know by part (a) that δ-hat(qf,x) = qf. It is then a simple induction on k to show that δ-hat(q0,xk) = qf.
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论