• Viernes 8 de Noviembre de 2024, 22:55

Autor Tema:  Mathematica, Lisp, Sql  (Leído 4785 veces)

narragonio

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Mathematica, Lisp, Sql
« en: Jueves 20 de Diciembre de 2007, 11:31 »
0
Antes de nada, saludos a todos.

Estoy empezando a realizar el proyecto fin de carrera que va a estar muy relacionado con temas matemáticos por lo que me he decidido a utilizar Mathematica como lenguaje de programación.

Lo que pasa es que no sé si se puede utilizar una base de datos externa con este programa ni si es eficiente, seguro, funciona correctamente... ¿Alguno de vosotros lo sabe?

También tengo el problema de que creo que Mathematica no es un buen programa para utilizar procedimientos de Inteligencia Artificial que creo que necesitaré usar en un futuro no muy lejano.

¿Usando LISP podría salvar estos problemas?

Muchas gracias y felices fiestas!

dannyv

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Mathematica, Lisp, Sql
« Respuesta #1 en: Jueves 20 de Diciembre de 2007, 22:06 »
0
Cita de: "narragonio"
Antes de nada, saludos a todos.

Estoy empezando a realizar el proyecto fin de carrera que va a estar muy relacionado con temas matemáticos por lo que me he decidido a utilizar Mathematica como lenguaje de programación.

Lo que pasa es que no sé si se puede utilizar una base de datos externa con este programa ni si es eficiente, seguro, funciona correctamente... ¿Alguno de vosotros lo sabe?

También tengo el problema de que creo que Mathematica no es un buen programa para utilizar procedimientos de Inteligencia Artificial que creo que necesitaré usar en un futuro no muy lejano.

¿Usando LISP podría salvar estos problemas?

Muchas gracias y felices fiestas!
Me gustaria saber que tipo de proyecto tienes en mente realizar. No es necesario que entres en detalle, solo algunos puntos como para analizar tu pregunta.

Actualmente me encuentro utilizando Mathematica 5.2, y lo estoy utilizando para programar tecnicas de AI, en mi caso esto es programas de razonamiento automatizado (logica proposicional, QBF, SMB). El problema que tiene este CAS (Computer Algebraic System) es que es interpretado, lo cual hace que sea muy lento para instancias grandes de problemas. En ese caso tal vez seria mejor utilizar un lenguaje como C, el cual permite mucha optimizacion de codigo.

Lo que Mathematica te provee es rapidez de desarrollo y facilidad, pues ya tiene un monto de funciones construidas dentro de sus paquetes para un monton de operaciones algebraicas (los matematicos apreciamos mucho eso  :D ). Y no te preocupes por la seguridad, pues es de los mejores CAS que existen en el mercado.

Ahora, nunca he usado una base de datos con Mathematica, y realmente no se si se puede hacer.

Para elegir un lenguaje adecuado para utilizar en AI (en mi opinion) debes de considerar simplemente cual es el estilo de programacion que mas bien te viene. Como LISP es un lenguaje funcional, a muchas personas les cuesta acostumbrarse a ese estilo cuando pasan de de un lenguaje estructurado. Lo mismo es cuando programas en un lenguaje logico tipo PROLOG. Mathematica es un lenguaje que soporta los tres estilos de programacion, lo cual lo hace muy flexible.

Solo ten en cuenta, que lo que se puede hacer en LISP o PROLOG, tambien lo puedes hacer en C, C++, etc. Solo ten en cuenta, con que estilo de programacion te sientes mas comodo.

narragonio

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Mathematica, Lisp, Sql
« Respuesta #2 en: Viernes 21 de Diciembre de 2007, 20:31 »
0
Gracias por tu contestación!

Mi PFC está encaminado a ser un proyecto por así decirlo "científico". El por qué de este carácter es que al estudiar matemáticas e informática de gestión, parece interesante mezclar un poco las dos materias.

Una breve descripción del proyecto podría ser la siguiente:

Voy a realizar un paquete para Mathemática capaz de aproximar/estimar/predecir valores de concentración de ciertas plagas en un sitio determinado por medio de familias de funciones (aquí es donde entra en juego el por qué de la elección de Mathematica, que como tu dices, es fantástico como CAS).

A partir de este paquete cotejaría los resultados de las predicciones hechas por el paquete para ver si realmente es buena la estimación.

Una vez hecho esto, comenzaría a realizar un GUI que llevara a cabo todo esto.

¿Dónde podría entrar la IA en todo esto?

En la elección de la mejor función aproximación/predicción para un punto determinado.

¿En Mathematica cuesta mucho trabajar con procedimientos de IA?¿Es dificil de programar IA?

Tengo que decir que no se prácticamente nada de IA ni tampoco conozco LISP. Con el tema de la relación con SQL, he econtrado CLSQL que parece que podría hacer trabajar a LISP con una base de datos, pero no he tenido tiempo de hacer nada ni probar el programa. ¿Lo conoces?

Espero que te haya aclarado un poco el problema.

Gracias

dannyv

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Mathematica, Lisp, Sql
« Respuesta #3 en: Viernes 21 de Diciembre de 2007, 20:58 »
0
Cita de: "narragonio"
Gracias por tu contestación!

Mi PFC está encaminado a ser un proyecto por así decirlo "científico". El por qué de este carácter es que al estudiar matemáticas e informática de gestión, parece interesante mezclar un poco las dos materias.

Una breve descripción del proyecto podría ser la siguiente:

Voy a realizar un paquete para Mathemática capaz de aproximar/estimar/predecir valores de concentración de ciertas plagas en un sitio determinado por medio de familias de funciones (aquí es donde entra en juego el por qué de la elección de Mathematica, que como tu dices, es fantástico como CAS).

A partir de este paquete cotejaría los resultados de las predicciones hechas por el paquete para ver si realmente es buena la estimación.

Una vez hecho esto, comenzaría a realizar un GUI que llevara a cabo todo esto.

¿Dónde podría entrar la IA en todo esto?

En la elección de la mejor función aproximación/predicción para un punto determinado.

¿En Mathematica cuesta mucho trabajar con procedimientos de IA?¿Es dificil de programar IA?

Tengo que decir que no se prácticamente nada de IA ni tampoco conozco LISP. Con el tema de la relación con SQL, he econtrado CLSQL que parece que podría hacer trabajar a LISP con una base de datos, pero no he tenido tiempo de hacer nada ni probar el programa. ¿Lo conoces?

Espero que te haya aclarado un poco el problema.

Gracias
Estaras utilizando entonces muchos metodos numericos, si es que el modelo matematico que estas utilizando consisten en familia de funciones (ya sea ecuaciones diferenciales, sistemas lineales, no lineales, etc.), por lo que Mathematica es una muy buena eleccion. Si decides recurrir a un lenguaje como LISP o C, entonces tendrias que programar estos metodos tu mismo, o utilizar otros ya escritos por otras personas (si es que existen, todo depende del modelo matematico inicial).

Tal vez podrias considerar Automatas Celulares, pues es un algebra muy bueno para describir fenomenos del tipo que explicaste, y, el mismo creador de Mathematica es de los mas grandes expertos en esa area. Por lo tanto, Mathematica ya incluyen un monton de paquetes para Automatas Celulares.

Para hacer la GUI puedes utilizar cualquier otro lenguaje distinto de Mathematica, y dentro de este, enviar las tareas de calculo al kernel de Mathetematica.

Respecto a tus preguntas sobre AI:

1) La AI no refiere solamente a los algoritmos, sino tambien al disenho. Si no conoces nada de AI te recomiendo "Artificial Intelligence: A Modern Approach. 2nd Edition. Stuart Russell, Peter Norvig", el cual es un excelente libro introductorio. Leyendo un poco de este libro vas a darte cuenta que un algoritmo es considerado AI dependiendo del enfoque en que se lo utiliza.
Pero siendo un poco mas concreto, algunas tecnicas de AI para aproximacion de funciones son: Algoritmos Evolutivos, Busqueda Local, Optimizacion por Enjambre de Particulas. Y tambien tienes los clasicos metodos numericos: Newton-Raphson, Gradiente-Conjugado, etc.

2)Programar en Mathematica en general es muy sencillo, hagas lo que hagas. Y respecto a la programcion en AI, los algoritmos son muy sencillos, y requieren de conocimiento basicos de matematicas, fisica y estadisticas que se ensenhan en todos los cursos de pregrado de Ciencias de la Computacion.

3)Sobre CLSQL no se nada, no soy muy fanatico de LISP  :(

dannyv

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Mathematica, Lisp, Sql
« Respuesta #4 en: Viernes 21 de Diciembre de 2007, 21:02 »
0
Para complementar mi respuesta anterior sobre AI, ten en cuenta que el area es muy amplio, y la dificultad en el metodo AI depende de en que estas trabajando (lenguaje natural, busqueda, razonamiento automatizado, aprendizaje, etc.). Por lo tanto, algunas areas requieren de mucha estadistica, otras de logica, otras de calculo, y en el peor de los casos, hay areas muy interdisciplinarias, e.g., Busqueda Local para Satisfaccion Boolean.

narragonio

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Mathematica, Lisp, Sql
« Respuesta #5 en: Viernes 21 de Diciembre de 2007, 21:14 »
0
Perfecto, muchas gracias por tu ayuda!

Además, el libro que has citado lo tengo en casa ya que tenía pensado mirarlo para ver las posibilidades de utilizar IA en el proyecto. :D

Ahora mismo estoy comenzando con el PFC así que tus comentarios me van a servir de ayuda para enfocarlo.

Con respecto al tema de enviar las tareas de calculo al kernel de Mathematica, ¿Cómo se hace?

Si se trabaja de esta forma, el programa tendrá que tener una especia de "paquete" de Mathemática.

Esta solución que me comentas es la que veía más viable porque trabajo con familias de funciones de lo más variopinto (desde exponenciales, a lineales pasando por trigonométricas...) pero no sabía si era posible hacerlo.

Gracias otra vez!