当前位置: 代码迷 >> 综合 >> 确定有限状态自动机(deterministic finite automaton --> DFA)
  详细解决方案

确定有限状态自动机(deterministic finite automaton --> DFA)

热度:61   发布时间:2023-12-06 23:41:00.0

确定有限状态自动机(deterministic finite automaton --> DFA)

总结

创建一个程序,该程序将输入确定性有限状态自动机(DFA)的定义,并处理一些字符串,以确定这些字符串是否是DFA所识别的语言的一部分。

细节

  1. 编写一个Java命令行程序,首先提示用户输入文件名。
  2. 这个文件将被程序读入。
  3. 该文件将包含对 DFA 的描述和一些要由 DFA 计算的未知数量的字符串。
  4. 对于每个字符串,程序将模拟该字符串上的 DFA 。
  5. 在下面一行打印带有"ACCEPT"或"REJECT"的字符串,并在后面加一个空行以使输出可读。

文件格式

  1. 第 1 行一整数, N ,作为DFA中的状态数(编号为 0 一 N 一 l ) ; 启动状态将始终为 0
  2. 第 2 行一表示DFA字母表中单个符号的字符串(单个字符)
  3. 第 3 行一至少一个整数 【 0 , N 一 l ]将是最终状态(s) ; 多个最终态将被空格分开
  4. 第 4 行: M 一 DFA 的转换函数,定义为一个三元组:整数字符integer ,其中第一个整数是当前状态,字符是要转换的输入符号,第二个整数是要转换的状态。每行上不超过 10 个三元组,其中一 1 #一 1 作为最后的三元组,表示转换函数定义的结束。行 M + 1 : EOF一要输入到DFA进行计算的字符串,每行一个,直到文件结束。

Example input file:

4
ba
3
0 b 0 1 b 0 2 b 0 3 b 3
0 a 1 1 a 2 2 a 3 3 a 3
-1 # -1
baabaaaab
babbabbab

Examle output:

baabaaaab
ACCEPTbabbabbab
REJECT

使用python实现

final_state = input
  相关解决方案