INTELIGENCIA ARTIFICIAL
Trabajo Final
Profesores:
� Ing. Mario Figueroa � Ing. Pablo Rovarini
Alumnos:
� José Daniel Muccela
Comisión: 5 k 2
Año 2008
Facultad Regional Tucumán
Universidad Tecnológica Nacional
APLICACIÓN DE LÓGICA MULTIVALUADA A PROBLEMAS DE INVERSION
(Economía)
Asesoramiento para Inversores
[ºC]
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 1
Trabajo Práctico Final – Asesoramiento para Inverso res
Desarrollo En el presente trabajo se tratará el tema de la lógica multivaluada (lógica
fuzzy) como solución alternativa para resolver problemas de inversión
económica. Para su desarrollo se escogió como software de soporte a la
aplicación Matlab. Se dará una breve reseña sobre el tema de la lógica
multivaluada, presentación del problema de la inversión, definición del
problema y sus variables y finalmente el uso de Matlab y como determinar la
solución con el sistema desarrollado.
Sobre la lógica multivaluada (lógica fuzzy):
Primeramente diremos que la lógica multivaluada surge como resultado
del planteamiento de cómo resolver aquellos problemas que pueden tener más
de dos posibilidades de solución (si-no, verdadero-falso), la cual se conoce
como lógica bi-valuada. De esta manera se pueden tener entonces más
posibilidades de solución. Por ejemplo, si hacemos referencia al estado del
tiempo, podríamos decir que el tiempo esta frío, muy frío, caluroso, muy
caluroso o normal. A estas posibilidades se las agrupa a un solo conjunto que
las contiene y se conoce con el nombre de Term-Set. Cada posibilidad es
entonces “un término”.
La utilización de este tipo de lógica es útil especialmente en aquellos
casos en que no se conoce con certeza un valor y su determinación pueda
llegar a prestarse a confusiones. Nuestro cerebro funciona de esta manera.
Así, cuando nos preguntan si estudiamos para el examen, respondemos por
ejemplo: “muy poco”. El conjunto completo (Term-set) de valores para esta
situación podría ser: Nada, Muy poco, Normal, Mucho, Todo.
Cabe decir que un term-set completo se aplica a cada variable
interviniente en el problema. Para cada variable se define un term-set. Tanto
para las variables de entrada como la o las de salida.
Los valores o términos correspondientes a los term-sets de las variables
de entrada nos servirán luego para combinarlos con los de otras variables de
entrada y asi poder determinar una solución al problema. Esta combinación se
logra mediante la aplicación de reglas de inferencia, donde se especifica que
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 2
de acuerdo a determinados valores de entrada se obtendrá una salida
determinada.
Las reglas están compuestas de un antecedente y un consecuente. El
antecedente es el formado por los valores de los term-set de las variables de
entrada y el consecuente son los valores del term-set de la variable de salida.
En el desarrollo del trabajo se explica con más detalle el uso de Matlab
para el palnteo y resolución del problema, la definición de las variables, sus
term-sets, las reglas de decisión y como se determina el resultado.
Sobre el problema de la inversión:
El problema que se presenta en este trabajo es de suma importancia y
no pierde actualidad y nos referimos al tema de la Inversión. Inversión en
términos de economía.
La inversión, es el flujo de producto de un período dado que se usa para
mantener o incrementar el stock de capital de la economía. El inversionista, es
quien coloca su dinero en un título valor o alguna alternativa que le genere un
rendimiento futuro, ya sea una persona o una sociedad. La inversión es
cualquier sacrificio de recursos hoy, con la esperanza de recibir algún beneficio
en el futuro.
La definición de cuáles son los factores determinantes del nivel de
inversión es una de las cuestiones más polémicas de la economía. Para los
fines del trabajo consideraremos los siguientes factores: horizonte de tiempo
considerado, nivel de dinero, nivel de riesgo y al tipo de inversor.
En una situación normal de la economía se pueden presentar ciertas
situaciones que le puedan dar al inversor la pauta de cómo invertir. La idea que
acerca este trabajo consiste en acercar a este inversor una serie de consejos o
asesoramiento (valor de la variable de salida) a partir de ciertas situaciones
(valores de las variables de entrada).
Vamos utilizar 5 variables que son los parámetros a considerar para el
desarrollo del modelo, de las cuáles 4 de ellas serán se corresponden con
parámetros de entrada al problema y aportan datos para finalmente asesorear
al inversor sobre que camino seguir. La variable restante se corresponde con la
salida y es la que contendrá la solución encontrada luego de una serie de
cálculos con los parámetros de entrada.
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 3
Descripción de las Variables: Variables de Entrada:
• nivel_dinero: Para esta variable consideramos 5 niveles o estados
posibles, los cuales corresponden al nivel de dinero que posee el inversor.
• horizonte_tiempo: Esta variable hace referencia al tiempo que el inversor
considera para efectuar la inversión.
• nivel_riesgo: Hace referencia al riesgo que el inversor es capaz de
soportar por una inversión que decida realizar. El nivel de riesgo de un inversor
tiene relación directa con el tipo de inversor.
• tipo_inversor: Se refiere al perfil del inversor. Hay inversores que poseen
más experiencia y por lo tanto están dispuestos a arriesgar más como se dijo
en el párrafo anterior. Lo contrario sucede con el que tiene poca experiencia
financiera. Encontramos útil encuadrar el perfil del inversor mediante cinco
tipos posibles como se verá más adelante.
Variables de Salida: • asesoramiento: esta variable se corresponde con el consejo que se da al
inversor de acuerdo al suceso de los valores de las variables de entrada.
Consideramos que el nombre “asesoramiento” para la variable de salida es el
más adecuado ya que en la jerga financiera es el término que se utiliza. De
aquí se desprende que el “Asesor” Financiero da consejos al Inversor.
En este momento ya estamos en condiciones de presentar el diseño del
sistema.
Diseño del Sistema: Variables del problema:
Variables de entrada: Variable de salida:
� D (nivel_dinero) � T (horizonte_tiempo) � R (nivel_riesgo) � I (tipo_inversor)
� A (asesoramiento)
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 4
Esquemáticamente el modelo quedaría como se muestra en la siguiente figura:
Ahora definiremos los Term-Set para cada variable interviniente en el
problema.
Term Set para nivel_dinero:
muy-poco – poco – medio – alto – muy-alto
Valores de Referencias: muy-poco= [10 20 30] poco= [26 36 46] medio= [43 53 63] alto= [60 70 80] muy-alto= [76 88 100]
Sistema Experto Fuzzy
Sistema de Inversión
D
T A
R
I
%
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 5
Term Set para horizonte_tiempo:
corto-plazo – medio-plazo – largo-plazo
Valores de Referencias: corto-plazo= [0 3 5] medio-plazo= [4 6 8] largo-plazo= [7 9.5 12] Term Set para nivel_riesgo:
poco – medio – mucho
Meses
nivel_riesgo
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 6
Valores de Referencias: poco= [-0 0 2 5] mucho= [5 8 10 +10] Term Set para tipo_inversor:
Conservador – Prudente – Moderado – Dinámico – Agresivo
Valores de Referencias: conservador= [0 1.25 2.5] prudente= [2 3.25 4.5] moderado= [4 5.25 6.5] dinamico= [6 7.25 8.5] agresivo= [8 9 10]
nivel_tipo_inversor
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 7
Term Set para asesoramiento:
cuentas-de-ahorro – metal-precioso – titulos-publicos – negocio – acciones – inmuebles
Valores de Referencias: cuentas-de-ahorro= [10 20 30] metal-precioso= [25 37.5 50] titulos-publicos= [45 52.5 60] negocio= [57 65 73] acciones= [70 77.5 85] inmuebles= [80 90 100 100] Con la información que tenemos hasta aquí estamos en condiciones de
armar una serie de reglas, necesarias para el cálculo de la solución al problema
que se plantea en el trabajo. Cuando hablamos de reglas, nos referimos a una
serie de postulados que se pueden presentar de acuerdo a los valores que
contienen las variables de entrada y la variable de salida. Esto es, que, a
ciertos valores de entrada se producirá una salida. Recordemos que estamos
tratando de resolver nuestro problema con la ayuda de la lógica.
Las reglas que vamos a utilizar están compuestas de un antecedente
formado por varias variables (pertenecientes a la entrada) y un consecuente
(perteneciente a la variable de salida). Por lo tanto, la regla que aplicaremos
tiene la forma:
%
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 8
Con esta aclaración, procedemos a armar una tabla donde a partir de las
variables de entrada y sus respectivos valores encontraremos los valores de
salida para la variable asesoramiento.
Muy Poco – Poco – Medio – Alto – Muy alto Corto-Plazo – Medio Plazo – Largo Plazo
Poco – Medio – Mucho Conservador – Prudente – Moderado – Dinámico – Agresivo
REGLAS UTILIZADAS EN EL SISTEMA INVERSIÓN FINANCIERA
Antecedente Consecuente
#regla nivel _dinero ND
horizonte_tiempo HT
nivel_riesgo NR
tipo_inversor TI entonces asesoramiento
A
1 Muy Poco Corto Poco Conservador � Cuenta de Ahorro
2 Poco Corto Poco Prudente � Cuenta de Ahorro
3 Medio Corto Poco Moderado � Títulos Públicos
4 Alto Corto Poco Dinámico � Acciones
5 Muy Alto Corto Poco Agresivo � Negocio
6 Muy Poco Mediano Poco Conservador � Títulos Públicos
7 Poco Mediano Poco Prudente � Títulos Públicos
8 Medio Mediano Poco Moderado � Metal Precioso
9 Alto Mediano Poco Dinámico � Negocio
10 Muy Alto Mediano Poco Agresivo � Inmuebles
11 Muy Poco Largo Poco Conservador � Cuenta de Ahorro
12 Poco Largo Poco Prudente � Cuenta de Ahorro
13 Medio Largo Poco Moderado � Acciones
14 Alto Largo Poco Dinámico � Negocio
15 Muy Alto Largo Poco Agresivo � Inmuebles
16 Muy Poco Corto Medio Conservador � Cuenta de Ahorro
17 Poco Corto Medio Prudente � Títulos Públicos
18 Medio Corto Medio Moderado � Acciones
19 Alto Corto Medio Dinámico � Metal Precioso
20 Muy Alto Corto Medio Agresivo � Inmuebles
If (variable 1 is valor1 and variable 2 is valor2 ….. )
…….then (variable_salida is valor _variable_salida)
Antecedente de la regla
Consecuente de la regla
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 9
21 Muy Poco Mediano Medio Conservador � Cuenta de Ahorro
22 Poco Mediano Medio Prudente � Cuenta de Ahorro
23 Medio Mediano Medio Moderado � Títulos Públicos
24 Alto Mediano Medio Dinámico � Acciones
25 Muy Alto Mediano Medio Agresivo � Negocio
26 Muy Poco Largo Medio Conservador � Cuenta de Ahorro
27 Poco Largo Medio Prudente � Títulos Públicos
28 Medio Largo Medio Moderado � Acciones
29 Alto Largo Medio Dinámico � Inmuebles
30 Muy Alto Largo Medio Agresivo � Metal Precioso
31 Muy Poco Corto Mucho Conservador � Títulos Públicos
32 Poco Corto Mucho Prudente � Cuenta de Ahorro
33 Medio Corto Mucho Moderado � Acciones
34 Alto Corto Mucho Dinámico � Negocio
35 Muy Alto Corto Mucho Agresivo � Metal Precioso
36 Muy Poco Mediano Mucho Conservador � Cuenta de Ahorro
37 Poco Mediano Mucho Prudente � Títulos Públicos
38 Medio Mediano Mucho Moderado � Acciones
39 Alto Mediano Mucho Dinámico � Metal Precioso
40 Muy Alto Mediano Mucho Agresivo � Inmuebles
41 Muy Poco Largo Mucho Conservador � Cuenta de Ahorro
42 Poco Largo Mucho Prudente � Títulos Públicos
43 Medio Largo Mucho Moderado � Acciones
44 Alto Largo Mucho Dinámico � Negocio
45 Muy Alto Largo Mucho Agresivo � Metal Precioso
A partir de esta tabla y de la intersección de los estados de las variables,
encontramos las reglas que se aplicarán para el funcionamiento del sistema de control. Estas reglas se corresponden con la variable de salida “asesoramiento”.
Aquí hemos omitido aquellas celdas que representan los casos que pueden no presentarse o rara vez pueden suceder.
Se encontraron 45 (cuarenta y cinco) reglas útiles.
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 10
Deducción de las reglas que se aplicarán: Ejemplo
Nº Regla Regla 1 If ND is MA and HT IS L and NR is Mu and TI is A then A is MP 2 If ND is A and HT IS M and NR is Mu and TI is D then A is MP 3 If ND is P and HT IS C and NR is Me and TI is P then A is TP 4 If ND is MP and HT IS C and NR is P and TI is C then A is CA . . .........y así sucesivamente hasta agotar las posib ilidades válidas
Desarrollo del modelo a través del soft: El Software que utilizaremos para el desarrollo del modelo propuesto es
el Matlab Versión 7 - R14.
Primeramente llamamos a la herramienta Fuzzy (Fuzzy Logic Toolbox)
del Matlab a través de la ventana de comandos escribiendo fuzzy .
Al abrirse creamos un nuevo proyecto FIS y elegimos el método que se
empleará para su resolución. Por defecto lo crea con el método Mandani.
Una vez hecho esto se accede a la ventana donde se comienza a
trabajar con el sistema.
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 11
En esta ventana Ingresamos las variables de entrada (amarillo) y la
variable de salida (celeste)
Podemos ir agregando variables a nuestro modelo a través de la
siguiente ventana. En ella seleccionamos si queremos una variable de entrada
o de salida.
Especificamos el nombre de las variables de entrada (amarillo)
nivel_dinero, hoirizonte_tiempo, nivel_riesgo, tipo_inversor y la variable de
salida (celeste) asesoramiento.
El modelo queda como se muestra a continuación.
Cambiar nombre de
variable
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 12
Antes de seguir trabajando guardamos el modelo a través del menú
File -> Export. Guardamos a Disco para poder recuperar nuestro trabajo
posteriormente.
Ahora debemos definir los Term-Set (las funciones de pertenencia) para
cada variable. Hacemos doble clic en el cuadro amarillo del modelo que
creamos. Nos lleva a la siguiente ventana.
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 13
En esta ventana, cargamos los Term-Set correspondientes al
nivel_dinero. El nombre del mismo lo colocamos en el cuadro Name que se
encuentra a la derecha. En el cuadro Params elegimos el rango numérico del
Term-Set [valor_lateral_derecho valor_central valor_lateral_izquierdo]. El
rango que especificamos entre corchetes dependerá del tipo que
seleccionemos en Type; para el caso del tipo trimf se definen tres valores como
se explico anteriormente. A la izquierda de la ventana colocamos el rango para
todos los Term-Set que vamos a crear. En este caso de 10 a 100 %.
Para agregar un nuevo Term-Set a la variable vamos al menú Edit ->
Add Custom MF…
De la misma manera creamos los Term-Set para las otras variables.
A continuación se muestra la carga de los Term-Set para la variable horizonte_tiempo.
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 14
Term-Set para la variable nivel_riesgo.
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 15
Term-Set para la variable tipo_inversor.
Y por ultimo, la carga de los Term-Set para la variable de salida
asesoramiento.
Luego procedemos a la carga de las reglas que se usarán para nuestro modelo. La ventana que se muestra a continuación se accede a través de doble clic sobre la región blanca del modelo que creamos (inversión financiera (Mandani)) o bien a través del menú Edit -> Rules…
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 16
En esta ventana sólo seleccionamos de las listas de la parte inferior de
la pantalla, los estados para cada variable (antecedentes) y el estado de la
variable de salida correspondiente (consecuente), elegimos el modo del
operador booleano (And en nuestro caso) y a continuación agregamos la regla
al listado superior con Add rule. (Para lograr esto primeramente tendríamos que
haber cargado los Term-Set de las variables de entrada y de salida, de otra
manera los cuadros de selección estarían vacíos y no tendríamos opciones
para seleccionar). Así cargamos todas las reglas y una vez concluido cerramos
la ventana.
Ahora nos queda probar y visualizar los resultados del modelo que
creamos.
Podemos ver gráficamente como trabaja el sistema a través de las
reglas creadas ingresando al menú View -> Rules
No olvidar guardar el trabajo a medida que se avanza en el diseño.
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 17
Nos muestra la siguiente ventana:
En ella podemos ver los números correspondientes a las reglas y las
cinco variables que intervienen en el problema.
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 18
Probar el funcionamiento del Sistema Inversión Fina nciera: En el cuadro Input podemos cargar los valores para los cuales
deseamos probar el funcionamiento del sistema, esto es, el valor numérico
para el nivel_dinero, horizonte_tiempo, nivel_riesgo y tipo_inversor. De acuerdo
a los valores que se inserten el resultado podrá visualizarse en la última
columna correspondiente a la variable de salida asesoramiento. En ella se ve el
valor en % (porcentaje) que toma el sistema cuando tiene un determinado
nivel_dinero, horizonte_tiempo, nivel_riesgo y tipo_inversor.
Otra forma de obtener una respuesta del sistema de acuerdo a las
entradas que asignemos es mover la línea vertical que aparece en la columna
que representa a cada variable (línea vertical roja) hacia derecha o izquierda
según convenga. De esta manera podrá visualizarse en la última columna
(variable de salida) los cambios que se produzcan en términos de los cambios
de las variables de entrada.
Los datos de entrada son procesados para calcular el grado de
membresía que tendrán dentro del controlador.
El dispositivo de inferencia junto con la base de conocimientos realiza la
toma de decisiones y de acuerdo a esto actúa el sistema. El método de
inferencia se basa en el grado de pertenencia de los datos de entrada en los
conjuntos difusos de los espacios correspondientes a cada uno; esto sirve para
tomar una decisión en el espacio de salida. Para llevar a cabo el proceso de
inferencia se usan distintos métodos (mínimo-máximo, máximo-producto, etc.).
Dentro del controlador hay una parte que es el defuzificador, que es
quien realiza el procesado final de los datos, con el fin de adecuar los valores
difusos obtenidos de la inferencia en valores no difusos útiles para el proceso
que queremos controlar (en esta caso nuestro sistema de inversión financiera).
Para lograr esto el sistema emplea el método del centroide o centro de área
que consiste en calcular el centro de gravedad de una figura, a partir del
polígono formado por el proceso de inferencia.
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 19
También podemos visualizar gráficamente la superficie que se forma
como resultado del modelo planteado. Esto se logra a partir del menú View ->
Surface.
Nos muestra la siguiente ventana:
Este gráfico muestra la superficie que se forma como consecuencia de la
intersección de los valores que van tomando las variables del sistema.
Notar que como en este problema trabajamos con 4 variables de entrada
y una variable de salida (5 en total) no podrá visualizarse la combinación de
todas a la vez, ya que el gráfico se basa en un sistema de ejes tridimensional.
Por ende sólo será posible mostrar la gráfica correspondiente a 2 variables de
entrada con la variable de salida (3 en total-una para cada eje). Para visualizar
las superficies que se forman es necesario elegir desde los combos que
aparecen en la ventana, las variables que van a intervenir en la producción de
la gráfica.
Inteligencia Artificial 2008 – Trabajo Final - Muccela José Daniel
UTN FRT 20
Páginas webs consultadas:
http://www.infobae.com/notas/nota.php?Idx=250865&IdxSeccion=100799
http://www.emprendedoresnews.com/notaR/donde_y_en_que_invertir___que_s
on_los_fondos_de_inversion-2361-12.html
http://www.skandia.com.mx/html/Skandia_University/conceptos.htm
http://www.editum.org/inversinculessonlostiposdeinversinydeinversionista-p-
265.html