2010-11-29 21 views
10

Sé que puede sonar extraño, pero me gustaría saber una cosa en este nuevo mundo en el que se está metiendo Microsoft Visual F #. Hay muchas aplicaciones de este lenguaje, voy a aprender, con respecto al análisis sintáctico, programación funcional, programación estructurada ... Pero ¿qué pasa con la inteligencia artificial?F # y Fuzzy Logic

¿Hay alguna aplicación para Fuzzy Logic? ¿Es F # un buen lenguaje para ser utilizado en aplicaciones de lógica difusa?

En la universidad estamos estudiando Prolog e idiomas similares. Prolog puede crear consultas complejas en una expresión muy simple y breve (aprovechando los predicados y los hechos). ¿Es F # capaz de hacer esto?

Gracias de antemano.

Respuesta

8

Fuzzy Logic. F # no proporciona ningún tipo para implementar cálculos de lógica difusa de fábrica, pero es ciertamente posible utilizar F # en este dominio. La brevedad de F # y la capacidad de definir operadores sobrecargados personalizados deberían hacer que el código basado en lógica difusa sea bastante agradable. Hice una búsqueda rápida y descubrí algunos artículos de aplicación lógica difusa en Fa #:

Prolog es una pregunta poco diferente. El poder (y también la debilidad) de Prolog proviene del hecho de que ha retrocedido construido directamente en el lenguaje. Esto lo hace muy agradable para implementar algoritmos de búsqueda basados ​​en retroceso, pero también es una limitación.

F # no tiene ningún soporte directo para dar marcha atrás, pero es bastante fácil de escribir algoritmos basados ​​en retroceso utilizando la recursividad (que es el mecanismo de control de flujo principal, tanto en F # y Prolog).

Además, es posible implementar lenguaje específico de dominio para programación lógica en F #. Esto significa que implementaría algo así como Prolog dentro de F # y luego escribiría sus algoritmos de búsqueda usando este mini-lenguaje en F # (posiblemente usando otras características F # según sea necesario). Puede encontrar más información sobre problemas similares en this question.

+0

Gracias ... Ya vi los artículos que encontraste, pero solo quería una opinión de otra persona sobre este argumento. También creo que F # es una herramienta muy poderosa, ya que voy a descubrirlo en estos días ... :) Bueno, gracias por sus referencias y esfuerzo al responder mi pregunta. – Andry

+0

Ah, lo siento, una pregunta más ... ¿Qué quiere decir con el uso de mini-idiomas? – Andry

+3

Me gustaría agregar que, aunque no lo exploro en mi blog, F # sería una excelente opción para experimentar con implementaciones paralelas de lógica difusa, incluidas las implementaciones que usan adaptadores de gráficos. F # no es único a este respecto, pero proporciona excelentes oportunidades para combinar el paralelismo con lenguajes específicos de dominio. – TechNeilogy

3

F # es un lenguaje de propósito general con algunas características de lenguaje agradable, como la expresión de cálculo/Monad y la cita. Puede suponer que tiene aproximadamente la misma potencia que C#.

No es como Matlab o R, donde muchas bibliotecas preinstaladas están integradas. Si desea implementar una biblioteca de lógica difusa u otros algoritmos de AI desde cero, F # es un lenguaje muy bueno para usted ya que sus características de idioma le hacen la vida más fácil.

Pero si solo quiere usar una biblioteca de lógica Fuzzy, entonces será más apropiado usar otros lenguajes o sistemas especializados porque F # o .Net en general no tiene bibliotecas de muy buena calidad en este aspecto.

+0

Gracias Yin Zhu ... Esperaba que F # tuviera algunas bibliotecas para difusas, pero es ok incluso si no ... lo bueno es que puedo hacer muchos algoritmos en f # para difusa. Bueno lo intentaré. Gracias de nuevo. – Andry