F # и нечеткая логика - PullRequest
       52

F # и нечеткая логика

10 голосов
/ 29 ноября 2010

Я знаю, что это может звучать странно, но мне хотелось бы узнать одну вещь в этом новом мире, в который входит Microsoft Visual F #. Я собираюсь изучить множество применений этого языка в отношении синтаксического анализа, функционального программирования, структурного программирования ... Но как насчет искусственного интеллекта?

Есть ли приложения для Fuzzy Logic? Является ли F # хорошим языком для приложений Fuzzy Logic?

В университете мы изучаем пролог и похожие языки. Prolog может создавать сложные запросы в очень простых и коротких выражениях (используя предикаты и факты). Может ли F # сделать это?

Заранее спасибо.

Ответы [ 2 ]

8 голосов
/ 29 ноября 2010

Нечеткая логика. F # не предоставляет никаких типов для реализации вычислений нечеткой логики "из коробки", но, безусловно, возможно использовать F # в этой области. Краткость F # и способность определять пользовательские перегруженные операторы должны сделать код, основанный на нечеткой логике, довольно приятным. Я сделал быстрый поиск и обнаружил несколько статей, реализующих нечеткую логику в F #:

Пролог это немного другой вопрос. Сила (а также и слабость) Пролога в том, что он имеет обратную историю, встроенную непосредственно в язык. Это делает его очень удобным для реализации алгоритмов поиска, основанных на возврате, но это также ограничение.

F # не имеет прямой поддержки обратного отслеживания, но довольно просто написать алгоритмы, основанные на обратном отслеживании, используя recursion (который является основным механизмом потока управления как в F #, так и в Prolog).

Также возможно реализовать предметно-ориентированный язык для логического программирования на F #. Это означает, что вы будете реализовывать что-то вроде Prolog в F #, а затем писать свои алгоритмы поиска, используя этот мини-язык в F # (возможно, при необходимости используя другие функции F #). Вы можете найти больше информации о подобных проблемах в этом вопросе .

3 голосов
/ 29 ноября 2010

F # - это язык общего назначения с некоторыми приятными языковыми функциями, такими как вычислительное выражение / монада и цитата. Вы можете предположить, что он имеет примерно ту же мощность, что и C #.

Это не похоже на Matlab или R, где встроено много предварительно реализованных библиотек. Если вы хотите реализовать библиотеку Fuzzy Logic или другие алгоритмы ИИ с нуля, F # - очень хороший язык для вас, поскольку его языковые возможности облегчают жизнь.

Но если вы просто хотите использовать библиотеку логики Fuzzy, то использование других языков или специализированных систем будет более подходящим, поскольку F # или .Net в целом не имеют библиотек очень хорошего качества в этом аспекте.

...