我的Sudoku算法是否被视为“专家系统”?

时间:2019-04-08 21:15:59

标签: artificial-intelligence expert-system

我编写了一个代码,其中写入了Sudoku的所有规则(每列,每行和每平方出现一位数字)。该代码接受输入(未填充的数独网格),然后通过将逻辑子句转换为DIMACS格式并使用SAT求解器来返回解决方案。

鉴于该算法遵守规则,接收数据,并使用该数据根据含义得出结论(例如,如果第一个单元格中有1,第二个单元格中没有1),则此代码是被认为是“专家系统”?谢谢。

2 个答案:

答案 0 :(得分:2)

程序是否为专家系统是主观的,但是我要说的是,除非您的程序对从领域专家那里获得的非平凡知识进行编码,否则它不是专家系统。如果您不能教别人实际执行程序的操作,则它不是专家系统。

根据该定义,您所做的可能不是专家系统,因为一个人使用同一技术会非常耗时。我已经使用生产系统(https://sourceforge.net/p/clipsrules/code/HEAD/tree/branches/63x/examples/sudoku/)编写了数独求解器,我认为这是专家系统。编码的知识是从具有先进技术的网站上获取的,该技术可用于人类解决数独难题。人类实际上可以使用所有编码技术来解决难题(尽管某些更复杂的技术可以突破这一界限)。

尽管我的数独求解器可以解决比我更复杂的难题,但称其为专家系统并不表示其复杂程度。解决人类最复杂的数独难题的方法要比模拟人类可能采用的方法更好。

答案 1 :(得分:0)

在80年代,我编写了Emycin专家系统引擎的克隆。一个重要的特征是用户询问专家系统为什么的结论。系统可以(以一种几乎自然的语言)回答它应用了这样的规则来得出结论。

通过这种系统,知识被建模和实施(由认知工程师设计)为一组明确的规则。这些规则是引擎已知的对象。引擎可以触发规则(向前或向后或可能使用元规则...),并可以记录触发的规则,从而解释其结论。

(这是我对专家系统的感觉)。