F#和模糊逻辑

时间:2010-11-29 00:17:22

标签: f# artificial-intelligence prolog fuzzy-logic

我知道这可能听起来很奇怪,但我想知道微软Visual F#进入这个新世界的一件事。 关于解析,函数式编程,结构化编程,我将学习这种语言的许多应用......但是人工智能呢?

模糊逻辑有什么应用吗? F#是一种用于模糊逻辑应用的好语言吗?

在大学,我们正在学习Prolog和类似的语言。 Prolog能够在非常简单和短暂的表达式中创建复杂查询(通过利用谓词和事实)。 F#能够做到吗?

提前谢谢。

2 个答案:

答案 0 :(得分:8)

模糊逻辑。 F#没有提供任何类型的开箱即用的模糊逻辑计算,但在这个领域肯定可以使用F#。 F#的简洁性和定义自定义重载运算符的能力应该使基于模糊逻辑的代码非常好。我做了一个快速搜索,发现了一些在F#中实现模糊逻辑的文章:

Prolog 是一个有点不同的问题。 Prolog的力量(以及弱点)来自它直接在语言中构建的回溯这一事实。这使得它非常适合实现基于回溯的搜索算法,但它也是一个限制。

F#对回溯没有任何直接支持,但使用 recursion (这是F#和Prolog中的主要控制流机制)编写基于回溯的算法非常容易。 / p>

此外,可以在F#中为逻辑编程实现域特定语言。这意味着您将在F#中实现类似Prolog的内容,然后在F#中使用此迷你语言编写搜索算法(可能根据需要使用其他F#功能)。您可以在this question中找到有关类似问题的更多信息。

答案 1 :(得分:3)

F#是一种通用语言,具有一些很好的语言功能,例如计算表达式/ Monad和引用。您可以假设它具有与C#大致相同的功能。

它不像Matlab或R,其中内置了许多预先实现的库。如果您想从头开始实现模糊逻辑库或其他AI算法,F#是一种非常好的语言,因为它的语言功能使生活更轻松。

但是如果你只是想使用模糊逻辑库,那么使用其他语言或专用系统会更合适,因为F#或.Net通常在这方面没有非常好的质量库。