SISTEMA EXPERTO ASIGNACION DE CUPOS

LIZZA CATALINA MEDINA GONZALEZ COD 534001 DOCENTE: PERVYS RENGIFO

FUNDACION UNIVERSITARIA KONRAD LORENZ FACULTAD DE INGENIERIA DE SISTEMAS BOGOTA 2007

INTRODUCCION

Se considera a alguien un experto en un problema cuando este individuo tiene conocimiento especializado sobre dicho problema. En el área de los sistemas expertos a este tipo de conocimiento se le llama conocimiento sobre el dominio. La palabra dominio se usa para enfatizar que el conocimiento pertenece a un problema específico. Antes de la aparición del ordenador, el hombre ya se preguntaba si se le arrebataría el privilegio de razonar y pensar. En la actualidad existe un campo dentro de la inteligencia artificial al que se le atribuye esa facultad: el de los sistemas expertos . Estos sistemas también son conocidos como Sistemas Basados en Conocimiento, los cuales permiten la creación de máquinas que razonan como el hombre, restringiéndose a un espacio de conocimientos limitado. En teoría pueden razonar siguiendo los pasos que seguiría un experto humano (médico, analista, empresario, etc.) para resolver un problema concreto. Este tipo de modelos de conocimiento por ordenador ofrece un extenso campo de posibilidades en resolución de problemas y en aprendizaje. Su uso se extenderá ampliamente en el futuro, debido a su importante impacto sobre los negocios y la industria.

OBJETIVO Desarrollar un sistema experto que soluciones el problema de los tiempos en el análisis de asignación de cupos a los clientes.

MARCO TEORICO HISTORIA DE LOS SISTEMAS EXPERTOS: Sus inicios datan a mediados de los años sesenta. Durante esta década los investigadores alan newell y herbert simon desarrollaron un programa llamado gps (general problem solver; solucionador general de problemas). Podía trabajar con criptoaritmética, con las torres de Hanoi y con otros problemas similares. Lo que no podía hacer el GPS era resolver problemas del mundo real, tales como un diagnóstico médico. Algunos investigadores decidieron entonces cambiar por completo el enfoque del problema restringiendo su ambición a un dominio específico e intentando simular el razonamiento de un experto humano. En vez de dedicarse a computarizar la inteligencia general, se centraron en dominios de conocimiento muy concretos. De esta manera nacieron los sistemas expertos. A partir de 1965, un equipo dirigido por edward feigenbaum, comenzó a desarrollar se utilizando bases de conocimiento definidas minuciosamente. Dos años más tarde se construye dendral, el cual es considerado como el primer se. La ficción de dicho se era identificar estructuras químicas moleculares a partir de su análisis espectrográfico. En la década de los setenta se desarrolló mycin para consulta y diagnóstico de infecciones de la sangre. Este sistema introdujo nuevas características: utilización de conocimiento impreciso para razonar y posibilidad de explicar el proceso de razonamiento. Lo más importante es que funcionaba de manera correcta, dando conclusiones análogas a las que un ser humano daría tras largos años de experiencia. En mycin aparecen claramente diferenciados motor de inferencia y base de conocimientos. Al separar esas dos partes, se puede considerar el motor de inferencias aisladamente. Esto da como resultado un sistema vacío o shell (concha). Así surgió emycin (mycin esencial) con el que se construyó sacon, utilizado para estructuras de ingeniería, puff para estudiar la función pulmonar y guidon para elegir tratamientos terapéuticos. En esa época se desarrollaron también: hersay, que intentaba identificar la palabra hablada, y prospector, utilizado para hallar yacimientos de minerales. De este último derivó el shell kas (knowledge adquisition system). En la década de los ochenta se ponen de moda los se, numerosas empresas de alta tecnología investigan en este área de la inteligencia artificial, desarrollando se para su comercialización. Se llega a la conclusión de que el éxito de un se depende casi exclusivamente de la

calidad de su base de conocimiento. El inconveniente es que codificar la pericia de un experto humano puede resultar difícil, largo y laborioso. DEFINICION: Es un software que imita el comportamiento de un experto humano en la solución de un problema. Pueden almacenar conocimientos de expertos para un campo determinado y solucionar un problema mediante deducción lógica de conclusiones. Son sistemas expertos aquellos programas que se realizan haciendo explicito el conocimiento en ellos, que tienen información específica de un dominio concreto y que realizan una tarea relativa a este dominio. Programas que manipulan conocimiento codificado para resolver problemas en un dominio especializado en un dominio que generalmente requiere de experiencia humana. Programas que contienen tanto conocimiento declarativo (hechos a cerca de objetos, eventos y/o situaciones) como conocimiento de control (información a cerca de los cursos de una acción), para emular el proceso de razonamiento de los expertos humanos en un dominio en particular y/o área de experiencia. Software que incorpora conocimiento de experto sobre un dominio de aplicación dado, de manera que es capaz de resolver problemas de relativa dificultad y apoyar la toma de decisiones inteligentes en base a un proceso de razonamiento simbólico. ARQUITECTURA BÁSICA DE LOS SISTEMAS EXPERTOS • Base de conocimientos. Es la parte del sistema experto que contiene el conocimiento sobre el dominio. hay que obtener el conocimiento del experto y codificarlo en la base de conocimientos. Una forma clásica de representar el conocimiento en un sistema experto son lar reglas. Una regla es una estructura condicional que relaciona lógicamente la información contenida en la parte del antecedente con otra información contenida en la parte del consecuente. Base de hechos (Memoria de trabajo). Contiene los hechos sobre un problema que se han descubierto durante una consulta. Durante una consulta con el sistema experto, el usuario introduce la información del problema actual en la base de hechos. El sistema empareja esta información con el conocimiento disponible en la base de conocimientos para deducir nuevos hechos.

Motor de inferencia. El sistema experto modela el proceso de razonamiento humano con un módulo conocido como el motor de inferencia. Dicho motor de inferencia trabaja con la información contenida en la base de conocimientos y la base de hechos para deducir nuevos hechos. Contrasta los hechos particulares de la base de hechos con el conocimiento contenido en la base de conocimientos para obtener conclusiones acerca del problema. Subsistema de explicación. Una característica de los sistemas expertos es su habilidad para explicar su razonamiento. Usando el módulo del subsistema de explicación, un sistema experto puede proporcionar una explicación al usuario de por qué está haciendo una pregunta y cómo ha llegado a una conclusión. Este módulo proporciona beneficios tanto al diseñador del sistema como al usuario. El diseñador puede usarlo para detectar errores y el usuario se beneficia de la transparencia del sistema. Interfaz de usuario. La interacción entre un sistema experto y un usuario se realiza en lenguaje natural. También es altamente interactiva y sigue el patrón de la conversación entre seres humanos. Para conducir este proceso de manera aceptable para el usuario es especialmente importante el diseño del interfaz de usuario. Un requerimiento básico del interfaz es la habilidad de hacer preguntas. Para obtener información fiable del usuario hay que poner especial cuidado en el diseño de las cuestiones. Esto puede requerir diseñar el interfaz usando menús o gráficos.

IDENTIFICACION DEL PROBLEMA: Desarrollar un sistema experto que permita a la analista de cartera hacer un análisis de la asignación de cupos y no depender exclusivamente del gerente financiero y de sus tiempos

CONCEPTOS:

CREDITO: la confianza que tenemos en la capacidad de cumplir, en la posibilidad, voluntad y solvencia de un individuo, por lo que se refiere al cumplimiento de una obligación contraída. CLIENTE: Son aquellas empresas y personas naturales que adquieren a título de compra, las diferentes clases de mercancías que ofrece en ventas SEI. CUPO: es el valor que se asigna a cada cliente para compras realizar

• • •

INGRESOS: es el valor que el cliente recibe por ventas y/o otros servicios EGRESOS: es el valor que el cliente debe cancelar por concepto, de arrendamiento, salarios, servicios públicos y obligaciones bancarias y comerciales. CARTERA: aquella venta en la que la empresa le concede a un cliente un plazo para que cancele sus facturas y que se puede respaldar con un pagaré. igualmente los plazos concedidos deberán estar dentro de las políticas, esto es, desde 30 días hasta 60 días

• • FINCA RAIZ: es el inmueble que pertenece al cliente o a su codeudor y coloca como respaldo a la deuda.

DESARRROLLO DEL PROBLEMA: La totalidad de los documentos solicitados según sea el caso, deben ser entregados por el vendedor al departamento de cartera, con el fin de que allí se inicie la verificación de la información suministrada por el cliente. El departamento de cartera no recibirá solicitudes que no contengan la totalidad de los documentos exigidos. A partir de la verificación de datos y referencias, el departamento de crédito y cartera iniciará el estudio de crédito correspondiente A la asignación de cupo para cada cliente

TABLA DE CRITERIO DE INGRESOS/EGRESOS
BAJO 500.001 1.000.001 1.500.001 2.000.001 2.500.001 3.000.001 3.500.001 4.000.001 4.500.001 5.000.001 5.500.001 6.000.001 10.000.001 14.000.001 18.000.001 22.000.001 26.000.001 30.000.001 34.000.001 40.000.001 46.000.001 52.000.001 58.000.001 64.000.001 500.000 1.000.000 1.500.000 2.000.000 2.500.000 3.000.000 3.500.000 4.000.000 4.500.000 5.000.000 5.500.000 6.000.000 10.000.000 14.000.000 18.000.000 22.000.000 26.000.000 30.000.000 34.000.000 40.000.000 46.000.000 52.000.000 58.000.000 64.000.000 100.000.000

MEDIO

ALTO

MUY ALTO

DESARROLLAR UN SISTEMA BASADO EN EL CONOCIMIENTO PARA ASIGNAR CUPO A LOS CLIENTES.
FINCA RAIZ si no si si si no si si si

CUPO SE ASIGNA CUPO DE 1,000,001 A 1,500,000 SE ASIGNA CUPO DE 1,000,001 A 1,500,000 SE ASIGNA CUPO DE 1,000,001 A 1,500,000 SE ASIGNA CUPO DE 1,500,001 A 5,000,000 SE ASIGNA CUPO DE 1,500,001 A 5,000,000 SE ASIGNA CUPO DE 1,500,001 A 5,000,000 SE ASIGNA CUPO DE 5,000,001 A 30,000,000 SE ASIGNA CUPO DE 5,000,001 A 30,000,000 SE ASIGNA CUPO DE 5,000,001 A 30,000,000

INGRESOS bajos bajos bajos medios medios medios altos altos altos

EGRESOS bajos bajos bajos bajos bajos bajos bajos bajos medios

CARTERA 30 días al día 60 días 30 días 60 días al día 30 días 60 días 30 días

SE ASIGNA CUPO DE 5,000,001 A 30,000,000 SE ASIGNA CUPO DE 5,000,001 A 30,000,000 SE ASIGNA CUPO DE 5,000,001 A 30,000,000 SE ASIGNA CUPO DE MAS DE 30,000,000 SE ASIGNA CUPO DE MAS DE 30,000,000 SE ASIGNA CUPO DE MAS DE 30,000,000 SE ASIGNA CUPO DE MAS DE 30,000,000 SE ASIGNA CUPO DE MAS DE 30,000,000 SE ASIGNA CUPO DE MAS DE 30,000,000 SE ASIGNA CUPO DE MAS DE 30,000,000 NO SE ASIGNA CUPO DE 1,000,001 A 1,500,000 NO SE ASIGNA CUPO DE 1,000,001 A 1,500,000 NO SE ASIGNA CUPO DE 1,000,001 A 1,500,000 NO SE ASIGNA CUPO DE 1,000,001 A 1,500,000 NO SE ASIGNA CUPO DE 1,500,001 A 5,000,000 NO SE ASIGNA CUPO DE 1,500,001 A 5,000,000 NO SE ASIGNA CUPO DE 1,500,001 A 5,000,000 NO SE ASIGNA CUPO DE 1,500,001 A 5,000,000 NO SE ASIGNA CUPO DE 5,000,001 A 30,000,000 NO SE ASIGNA CUPO DE 5,000,001 A 30,000,000 NO SE ASIGNA CUPO DE 5,000,001 A 30,000,000 NO SE ASIGNA CUPO DE 5,000,001 A 30,000,000 NO SE ASIGNA CUPO DE MAS DE 30,000,000 NO SE ASIGNA CUPO DE MAS DE 30,000,000 NO SE ASIGNA CUPO DE MAS DE 30,000,000 NO SE ASIGNA CUPO DE MAS DE 30,000,000

altos altos altos muy altos muy altos muy altos muy altos muy altos muy altos muy altos bajos bajos bajos bajos medios medios medios medios altos altos altos altos muy altos muy altos muy altos muy altos

medios medios bajos bajos medios bajos medios bajos medios altos altos medios bajos bajos bajos bajos altos medios bajos medios altos muy altos medios bajos medios muy altos

60 días al día al día 30 días 30 días 60 días 60 días al día al día al día al día al día 30 días 60 días 30 días 60 días al día al día 30 días 60 días al día al día 30 días 60 días 30 días al día

si no no no si si si no no si no no no no no no no no no no no no no no no no

Paso 1: Construya la base de conocimiento en Prolog, utilizando lógica de predicados
cupo('SE ASIGNA CUPO DE 1,000,001 A 1,500,000'):-ingresos(bajos),egresos(bajos),cartera(treintadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE 1,000,001 A 1,500,000'):-ingresos(bajos ),egresos(bajos),cartera(aldia),fincaraiz(no). cupo('SE ASIGNA CUPO DE 1,000,001 A 1,500,000'):-ingresos(bajos),egresos(bajos),cartera(sesentadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE 1,500,001 A 5,000,000'):-ingresos(medios),egresos(bajos),cartera(treintadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE 1,500,001 A 5,000,000'):-ingresos(medios),egresos(bajos),cartera(sesentadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE 1,500,001 A 5,000,000'):-ingresos(medios),egresos(bajos),cartera(aldia),fincaraiz(no). cupo('SE ASIGNA CUPO DE 5,000,001 A 30,000,000'):-ingresos(altos),egresos(bajos),cartera(treintadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE 5,000,001 A 30,000,001'):-ingresos(altos),egresos(bajos),cartera(sesentadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE 5,000,001 A 30,000,001'):-ingresos(altos),egresos(medios),cartera(treintadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE 5,000,001 A 30,000,002'):-ingresos(altos),egresos(medios),cartera(sesentadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE 5,000,001 A 30,000,002'):-ingresos(altos),egresos(medios),cartera(aldia),fincaraiz(no).

cupo('SE ASIGNA CUPO DE 5,000,001 A 30,000,003'):-ingresos(altos),egresos(bajos),cartera(aldia),fincaraiz(no). cupo('SE ASIGNA CUPO DE MAS DE 30,000,000'):-ingresos(muyaltos),egresos(bajos),cartera(treintadias),fincaraiz(no). cupo('SE ASIGNA CUPO DE MAS DE 30,000,001'):-ingresos(muyaltos),egresos(medios),cartera(treintadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE MAS DE 30,000,002'):-ingresos(muyaltos),egresos(bajos),cartera(sesentadias ),fincaraiz(si). cupo('SE ASIGNA CUPO DE MAS DE 30,000,003'):-ingresos(muyaltos),egresos(medios),cartera(sesentadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE MAS DE 30,000,004'):-ingresos(muyaltos),egresos(bajos),cartera(aldia),fincaraiz(no). cupo('SE ASIGNA CUPO DE MAS DE 30,000,005'):-ingresos(muyaltos),egresos(medios),cartera(aldia),fincaraiz(no). cupo('SE ASIGNA CUPO DE MAS DE 30,000,006'):-ingresos(muyaltos),egresos(altos),cartera(aldia ),fincaraiz(si). cupo('NO SE ASIGNA CUPO DE 1,000,001 A 1,500,000'):-ingresos(bajos),egresos(altos),cartera(aldia),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 1,000,001 A 1,500,001'):-ingresos(bajos),egresos(medios),cartera(aldia),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 1,000,001 A 1,500,002'):-ingresos(bajos),egresos(bajos),cartera(treintadias),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 1,000,001 A 1,500,004'):-ingresos(bajos),egresos(bajos),cartera(sesentadias),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 1,500,001 A 5,000,000'):-ingresos(medios),egresos(bajos),cartera(treintadias),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 1,500,001 A 5,000,001'):-ingresos(medios),egresos(bajos),cartera(sesentadias),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 1,500,001 A 5,000,002'):-ingresos(medios),egresos(altos),cartera(aldia),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 1,500,001 A 5,000,003'):-ingresos(medios),egresos(medios),cartera(aldia),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 5,000,001 A 30,000,000'):-ingresos(altos),egresos(bajos),cartera(treintadias),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 5,000,001 A 30,000,001'):-ingresos(altos),egresos(medios),cartera(sesentadias),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 5,000,001 A 30,000,002'):-ingresos(altos),egresos(altos),cartera(aldia),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 5,000,001 A 30,000,003'):-ingresos(altos),egresos(muyaltos),cartera(aldia),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE MAS DE 30,000,000'):-ingresos(muyaltos),egresos(medios),cartera(treintadias),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE MAS DE 30,000,001'):-ingresos(muyaltos),egresos(bajos),cartera( sesentadias),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE MAS DE 30,000,002'):-ingresos(muyaltos),egresos(medios),cartera(treintadias),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE MAS DE 30,000,003'):-ingresos(muyaltos ),egresos(muyaltos ),cartera(aldia),fincaraiz(no).

Construya las preguntas en donde solicitara al usuario las características del cupo de credito que desea asignar de acuerdo a los requerimientos: pregunta1:write('EL ESTADO ACTUAL DE CARTERA DEL CLIENTE ES:'),nl,nl, write('1. CARERA A 30_DIAS.'),nl, write('2. CARTERA A 60_DIAS.'),nl, write('3. CARTERA AL DIA.'),nl, read(N), grupo(N). grupo(1):-assert(cartera(treintadias)),!. grupo(2):-assert(cartera(sesentadias)),!. grupo(3):-assert(cartera(aldia)),!. grupo(_):-pregunta1,!. Pregunta2:write(' POSEE FINCA RAIZ EL CLIENTE:'),nl,nl, write('1. SI.'),nl, write('2. NO.'),nl,

read(N1), tipo1(N1). tipo1(1):-assert(fincaraiz(si)),!. tipo1(2):-assert(fincaraiz(no)),!. tipo1(_):-pregunta2,!.

Pregunta3:write(' DE ACUERDO A LA TABLA N 1 EN QUE RANGO SE ENCUENTRAN LOS INGRESOS:'),nl,nl, write('1. 0_A_500.000.'),nl, write('2. 500.001_A_1.000.000.'),nl, write('3. 1.000.001_A_1.500.000 '),nl, write('4. 1.500.001_2.000.000.'),nl write('5.2.000.001_A_2.500.000.'),nl, write('6.2.500.0001_A_3.000.000.'),nl write('7.no aplica.'),nl read(N4), grupo2(N4). grupo2(1):-assert(ingresos(bajos)),!. grupo2(2):-assert(ingresos(bajos)),!. grupo2(3):-assert(ingresos(bajos)),!. grupo2(4):-assert(ingresos(bajos)),!. grupo2(5):-assert(ingresos(bajos)),!. grupo2(6):-assert(ingresos(bajos)),!. grupo2(7):-assert(ingresos(bajos)),!. grupo2(_):-pregunta3,!. Pregunta4:write(' DE ACUERDO A LA TABLA N 2 EN QUE RANGO SE ENCUENTRAN LOS INGRESOS:'),nl,nl, write('1.3.000.001_A_3.500.000.'),nl, write('2. 3.500.001_A_4.000.000.'),nl, write('3. 4.000.001_A_4.500.000 '),nl, write('4. 4.500.001_5.000.000.'),nl write('5.5.000.001_A_5.500.000.'),nl, write('6.5.500.0001_A_6.000.000.'),nl write('7.no aplica.'),nl read(N6), grupo3(N6).

grupo3(1):-assert(ingresos (medios)),!. grupo3(2):-assert((ingresos (medios)),!. grupo3(3):-assert((ingresos (medios)),!. grupo3(4):-assert((ingresos (medios)),!. grupo3(5):-assert((ingresos (medios)),!. grupo3(6):-assert((ingresos (medios)),!. grupo3(7):-assert((ingresos (medios)),!. grupo3(_):-pregunta4,!. Pregunta5:write(' DE ACUERDO A LA TABLA N 3 EN QUE RANGO SE ENCUENTRAN LOS INGRESOS:'),nl,nl, write('1.6.000.001_A_10.000.000.'),nl, write('2. 10.000.001_A_14.000.000.'),nl, write('3. 14.000.001_A_18.000.000 '),nl, write('4. 18.000.001_22.000.000.'),nl write('5.22.000.001_A_26.000.000.'),nl, write('6.26.000.0001_A_30.000.000.'),nl write('7.30.000.0001_A_34.000.000.'),nl write('8.no aplica.'),nl read(N8), grupo4(N8). grupo4(1):-assert(ingresos (altos)),!. grupo4(2):-assert(ingresos (altos)),!. grupo4(3):-assert(ingresos (altos)),!. grupo4(4):-assert(ingresos (altos)),!. grupo4(5):-assert(ingresos (altos)),!. grupo4(6):-assert(ingresos (altos)),!. grupo4(7):-assert(ingresos (altos)),!. grupo4(8):-assert(ingresos (altos)),!. grupo4(_):-pregunta5,!. Pregunta6:write(' DE ACUERDO A LA TABLA N 4 EN QUE RANGO SE ENCUENTRAN LOS INGRESOS:'),nl,nl, write('1.34.000.001_A_40.000.000.'),nl, write('2. 40.000.001_A_46.000.000.'),nl, write('3. 46.000.001_A_52.000.000 '),nl, write('4. 52.000.001_A_58.000.000.'),nl write('5.58.000.001_A_64.000.000.'),nl, write('6.64.000.0001_A_100.000.000.'),nl write('7.no aplica.'),nl read(N10), grupo5(N10).

grupo5(1):-assert(ingresos (muyaltos)),!. grupo5(2):-assert(ingresos (muyaltos)),!. grupo5(3):-assert(ingresos (muyaltos)),!. grupo5(4):-assert(ingresos (muyaltos)),!. grupo5(5):-assert(ingresos (muyaltos)),!. grupo5(6):-assert(ingresos (muyaltos)),!. grupo5(7):-assert(ingresos (muyaltos)),!. grupo5(_):-pregunta6,!. Pregunta7:write(' DE ACUERDO A LA TABLA N 1 EN QUE RANGO SE ENCUENTRAN LOS EGRESOS:'),nl,nl, write('1. 0_A_500.000.'),nl, write('2. 500.001_A_1.000.000.'),nl, write('3. 1.000.001_A_1.500.000 '),nl, write('4. 1.500.001_2.000.000.'),nl write('5.2.000.001_A_2.500.000.'),nl, write('6.2.500.0001_A_3.000.000.'),nl write('7.no aplica.'),nl read(N12), grupo6(N12). grupo6(1):-assert(egresos(bajos)),!. grupo6(2):-assert(egresos(bajos)),!. grupo6(3):-assert(egresos(bajos)),!. grupo6(4):-assert(egresos(bajos)),!. grupo6(5):-assert(egresos(bajos)),!. grupo6(6):-assert(egresos(bajos)),!. grupo6(7):-assert(egresos(bajos)),!. grupo6(_):-pregunta7,!. Pregunta8:write(' DE ACUERDO A LA TABLA N 2 EN QUE RANGO SE ENCUENTRAN LOS EGRESOS:'),nl,nl, write('1.3.000.001_A_3.500.000.'),nl, write('2. 3.500.001_A_4.000.000.'),nl, write('3. 4.000.001_A_4.500.000 '),nl, write('4. 4.500.001_5.000.000.'),nl write('5.5.000.001_A_5.500.000.'),nl, write('6.5.500.0001_A_6.000.000.'),nl write('7.no aplica.'),nl read(N14), grupo7(N14).

grupo7(1):-assert(egresos (medios)),!. grupo7(2):-assert egresos (medios)),!. grupo7(3):-assert(egresos (medios)),!. grupo7(4):-assert(egresos (medios)),!. grupo7(5):-assert(egresos (medios)),!. grupo7(6):-assert(egresos (medios)),!. grupo7(7):-assert(egresos (medios)),!. grupo7(_):-pregunta8,!. Pregunta9:write(' DE ACUERDO A LA TABLA N 3 EN QUE RANGO SE ENCUENTRAN LOS EGRESOS:'),nl,nl, write('1.6.000.001_A_10.000.000.'),nl, write('2. 10.000.001_A_14.000.000.'),nl, write('3. 14.000.001_A_18.000.000 '),nl, write('4. 18.000.001_22.000.000.'),nl write('5.22.000.001_A_26.000.000.'),nl, write('6.26.000.0001_A_30.000.000.'),nl write('7.30.000.0001_A_34.000.000.'),nl write('8.no aplica.'),nl read(N16), grupo4(N16). grupo8(1):-assert(egresos (altos)),!. grupo8(2):-assert(egresos (altos)),!. grupo8(3):-assert(egresos (altos)),!. grupo8(4):-assert(egresos (altos)),!. grupo8(5):-assert(egresos (altos)),!. grupo8(6):-assert(egresos (altos)),!. grupo8(7):-assert(egresos (altos)),!. grupo8(8):-assert(egresos (altos)),!. grupo8(_):-pregunta9,!. Pregunta10:write(' DE ACUERDO A LA TABLA N 4 EN QUE RANGO SE ENCUENTRAN LOS EGRESOS:'),nl,nl, write('1.34.000.001_A_40.000.000.'),nl, write('2. 40.000.001_A_46.000.000.'),nl, write('3. 46.000.001_A_52.000.000 '),nl, write('4. 52.000.001_A_58.000.000.'),nl write('5.58.000.001_A_64.000.000.'),nl, write('6.64.000.0001_A_100.000.000.'),nl write('7.no aplica.'),nl read(N18), grupo5(N18).

grupo9(1):-assert(egresos (muyaltos)),!. grupo9(2):-assert(egresos (muyaltos)),!. grupo9(3):-assert(egresos (muyaltos)),!. grupo9(4):-assert(egresos (muyaltos)),!. grupo9(5):-assert(egresos (muyaltos)),!. grupo9(6):-assert(egresos (muyaltos)),!. grupo9(7):-assert(egresos (muyaltos)),!. grupo9(_):-pregunta10,!. Defina un predicado que determine la clasificación de acuerdo con las respuestas del usuario: unir:cupo(C), write('el cupo asignado al cliente puede ser : '),nl, write(' '),write(C),nl,nl. Defina el predicado que permita ejecutar todo el programa: empezar:pregunta1, pregunta2, pregunta3, pregunta4, pregunta5, pregunta6, pregunta7, pregunta8, pregunta9, pregunta10, unir,!. Ahora, que hacer si usted quiere proveer al usuario la posibilidad de hacer otra consulta: Paso 1: Limpie todas las acciones del predicado assert, para esto puede definir un predicado de nombre purgar purgar:-retract(cartera(_)), retract(fincaraiz(_)), retract(ingresos(_)), retract(egresos(_)),!.

Paso 2: Defina un predicado que permita continuar si el usuario responde adecuadamente: continue('s'):-empezar,!. continue('S'):-empezar,!. continue('n'):-continue('N'). continue('N'):-write(' FUE UN PLACER AYUDARTE'),nl, write('............HASTA PRONTO............'). Paso 3: Defina el predicado que pregunte al usuario si desea continuar. pregunta:-nl,nl, write('Desea continuar s/n : '), read(X), continue(X). Paso 4: redefina el predicado unir para que responda la clasificación y solicite al usuario si desea continuar: unir:cupo(C), write('el cupo asignado al cliente puede ser: '),nl, write(' '),write(C),nl,nl, purgar, pregunta.

FINALMENTE EL PROGRAMA QUEDARÍA ASI:
cupo('SE ASIGNA CUPO DE 1,000,001 A 1,500,000'):-ingresos(bajos),egresos(bajos),cartera(treintadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE 1,000,001 A 1,500,000'):-ingresos(bajos ),egresos(bajos),cartera(aldia),fincaraiz(no). cupo('SE ASIGNA CUPO DE 1,000,001 A 1,500,000'):-ingresos(bajos),egresos(bajos),cartera(sesentadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE 1,500,001 A 5,000,000'):-ingresos(medios),egresos(bajos),cartera(treintadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE 1,500,001 A 5,000,000'):-ingresos(medios),egresos(bajos),cartera(sesentadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE 1,500,001 A 5,000,000'):-ingresos(medios),egresos(bajos),cartera(aldia),fincaraiz(no). cupo('SE ASIGNA CUPO DE 5,000,001 A 30,000,000'):-ingresos(altos),egresos(bajos),cartera(treintadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE 5,000,001 A 30,000,001'):-ingresos(altos),egresos(bajos),cartera(sesentadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE 5,000,001 A 30,000,001'):-ingresos(altos),egresos(medios),cartera(treintadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE 5,000,001 A 30,000,002'):-ingresos(altos),egresos(medios),cartera(sesentadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE 5,000,001 A 30,000,002'):-ingresos(altos),egresos(medios),cartera(aldia),fincaraiz(no). cupo('SE ASIGNA CUPO DE 5,000,001 A 30,000,003'):-ingresos(altos),egresos(bajos),cartera(aldia),fincaraiz(no). cupo('SE ASIGNA CUPO DE MAS DE 30,000,000'):-ingresos(muyaltos),egresos(bajos),cartera(treintadias),fincaraiz(no). cupo('SE ASIGNA CUPO DE MAS DE 30,000,001'):-ingresos(muyaltos),egresos(medios),cartera(treintadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE MAS DE 30,000,002'):-ingresos(muyaltos),egresos(bajos),cartera(sesentadias ),fincaraiz(si). cupo('SE ASIGNA CUPO DE MAS DE 30,000,003'):-ingresos(muyaltos),egresos(medios),cartera(sesentadias),fincaraiz(si). cupo('SE ASIGNA CUPO DE MAS DE 30,000,004'):-ingresos(muyaltos),egresos(bajos),cartera(aldia),fincaraiz(no). cupo('SE ASIGNA CUPO DE MAS DE 30,000,005'):-ingresos(muyaltos),egresos(medios),cartera(aldia),fincaraiz(no).

cupo('SE ASIGNA CUPO DE MAS DE 30,000,006'):-ingresos(muyaltos),egresos(altos),cartera(aldia ),fincaraiz(si). cupo('NO SE ASIGNA CUPO DE 1,000,001 A 1,500,000'):-ingresos(bajos),egresos(altos),cartera(aldia),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 1,000,001 A 1,500,001'):-ingresos(bajos),egresos(medios),cartera(aldia),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 1,000,001 A 1,500,002'):-ingresos(bajos),egresos(bajos),cartera(treintadias),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 1,000,001 A 1,500,004'):-ingresos(bajos),egresos(bajos),cartera(sesentadias),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 1,500,001 A 5,000,000'):-ingresos(medios),egresos(bajos),cartera(treintadias),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 1,500,001 A 5,000,001'):-ingresos(medios),egresos(bajos),cartera(sesentadias),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 1,500,001 A 5,000,002'):-ingresos(medios),egresos(altos),cartera(aldia),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 1,500,001 A 5,000,003'):-ingresos(medios),egresos(medios),cartera(aldia),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 5,000,001 A 30,000,000'):-ingresos(altos),egresos(bajos),cartera(treintadias),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 5,000,001 A 30,000,001'):-ingresos(altos),egresos(medios),cartera(sesentadias),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 5,000,001 A 30,000,002'):-ingresos(altos),egresos(altos),cartera(aldia),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE 5,000,001 A 30,000,003'):-ingresos(altos),egresos(muyaltos),cartera(aldia),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE MAS DE 30,000,000'):-ingresos(muyaltos),egresos(medios),cartera(treintadias),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE MAS DE 30,000,001'):-ingresos(muyaltos),egresos(bajos),cartera( sesentadias),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE MAS DE 30,000,002'):-ingresos(muyaltos),egresos(medios),cartera(treintadias),fincaraiz(no). cupo('NO SE ASIGNA CUPO DE MAS DE 30,000,003'):-ingresos(muyaltos ),egresos(muyaltos ),cartera(aldia),fincaraiz(no).

empezar:pregunta1, pregunta2, pregunta3, pregunta4, pregunta5, pregunta6, pregunta7, pregunta8, pregunta9, pregunta10, unir,!. pregunta1:write('EL ESTADO ACTUAL DE CARTERA DEL CLIENTE ES:'),nl,nl, write('1. CARERA A 30_DIAS.'),nl, write('2. CARTERA A 60_DIAS.'),nl, write('3. CARTERA AL DIA.'),nl, read(N), grupo(N). grupo(1):-assert(cartera(treintadias)),!. grupo(2):-assert(cartera(sesentadias)),!. grupo(3):-assert(cartera(aldia)),!. grupo(_):-pregunta1,!.

pregunta2:write(' POSEE FINCA RAIZ EL CLIENTE:'),nl,nl, write('1. SI.'),nl, write('2. NO.'),nl, read(N1), tipo1(N1). tipo1(1):-assert(fincaraiz(si)),!. tipo1(2):-assert(fincaraiz(no)),!. tipo1(_):-pregunta2,!. pregunta3:write(' DE ACUERDO A LA TABLA N 1 EN QUE RANGO SE ENCUENTRAN LOS INGRESOS:'),nl,nl, write('1. 0_A_500.000.'),nl, write('2. 500.001_A_1.000.000.'),nl, write('3. 1.000.001_A_1.500.000 '),nl, write('4. 1.500.001_A_2.000.000.'),nl, write('5. 2.000.001_A_2.500.000.'),nl, write('6. 2.500.0001_A_3.000.000.'),nl, write('7. pregunta4.'),nl, read(N8), tabla(N8). tabla(1):-assert(ingresos(bajos)),!. tabla(2):-assert(ingresos(bajos)),!. tabla(3):-assert(ingresos(bajos)),!. tabla(4):-assert(ingresos(bajos)),!. tabla(5):-assert(ingresos(bajos)),!. tabla(6):-assert(ingresos(bajos)),!. tabla(7):-assert(ingresos(medios)),!. tabla(_):-pregunta3,!. pregunta4:write(' DE ACUERDO A LA TABLA N 2 EN QUE RANGO SE ENCUENTRAN LOS INGRESOS:'),nl,nl, write('1.3.000.001_A_3.500.000.'),nl, write('2. 3.500.001_A_4.000.000.'),nl, write('3. 4.000.001_A_4.500.000 '),nl, write('4. 4.500.001_5.000.000.'),nl, write('5.5.000.001_A_5.500.000.'),nl, write('6.5.500.0001_A_6.000.000.'),nl, write('7.pregunta5.'),nl, read(N10), table3(N10).

table3(1):-assert(ingresos(medios)),!. table3(2):-assert(ingresos(medios)),!. table3(3):-assert(ingresos(medios)),!. table3(4):-assert(ingresos(medios)),!. table3(5):-assert(ingresos(medios)),!. table3(6):-assert(ingresos(medios)),!. table3(7):-assert(ingresos(altos)),!. table3(_):-pregunta4,!. pregunta5:write(' DE ACUERDO A LA TABLA N 3 EN QUE RANGO SE ENCUENTRAN LOS INGRESOS:'),nl,nl, write('1.6.000.001_A_10.000.000.'),nl, write('2. 10.000.001_A_14.000.000.'),nl, write('3. 14.000.001_A_18.000.000 '),nl, write('4. 18.000.001_22.000.000.'),nl, write('5.22.000.001_A_26.000.000.'),nl, write('6.26.000.0001_A_30.000.000.'),nl, write('7.30.000.0001_A_34.000.000.'),nl, write('8.pregunta6.'),nl, read(N8), tabli4(N8). tabli4(1):-assert(ingresos(altos)),!. tabli4(2):-assert(ingresos(altos)),!. tabli4(3):-assert(ingresos(altos)),!. tabli4(4):-assert(ingresos(altos)),!. tabli4(5):-assert(ingresos(altos)),!. tabli4(6):-assert(ingresos(altos)),!. tabli4(7):-assert(ingresos(altos)),!. tabli4(8):-assert(ingresos(muyaltos)),!. tabli4(_):-pregunta5,!. pregunta6:write(' DE ACUERDO A LA TABLA N 4 EN QUE RANGO SE ENCUENTRAN LOS INGRESOS:'),nl,nl, write('1.34.000.001_A_40.000.000.'),nl, write('2. 40.000.001_A_46.000.000.'),nl, write('3. 46.000.001_A_52.000.000 '),nl, write('4. 52.000.001_A_58.000.000.'),nl, write('5.58.000.001_A_64.000.000.'),nl, write('6.64.000.0001_A_100.000.000.'),nl, write('7.no aplica.'),nl, read(N10),

tablero5(N10). tablero5(1):-assert(ingresos(muyaltos)),!. tablero5(2):-assert(ingresos(muyaltos)),!. tablero5(3):-assert(ingresos(muyaltos)),!. tablero5(4):-assert(ingresos(muyaltos)),!. tablero5(5):-assert(ingresos(muyaltos)),!. tablero5(6):-assert(ingresos(muyaltos)),!. tablero5(7):-assert(ingresos(muyaltos)),!. tablero5(_):-pregunta6,!. pregunta7:write(' DE ACUERDO A LA TABLA N 1 EN QUE RANGO SE ENCUENTRAN LOS EGRESOS:'),nl,nl, write('1. 0_A_500.000.'),nl, write('2. 500.001_A_1.000.000.'),nl, write('3. 1.000.001_A_1.500.000 '),nl, write('4. 1.500.001_2.000.000.'),nl, write('5.2.000.001_A_2.500.000.'),nl, write('6.2.500.0001_A_3.000.000.'),nl, write('7.pregunta8.'),nl, read(N12), taple6(N12). taple6(1):-assert(egresos(bajos)),!. taple6(2):-assert(egresos(bajos)),!. taple6(3):-assert(egresos(bajos)),!. taple6(4):-assert(egresos(bajos)),!. taple6(5):-assert(egresos(bajos)),!. taple6(6):-assert(egresos(bajos)),!. taple6(7):-assert(egresos(medios)),!. taple6(_):-pregunta7,!. pregunta8:write(' DE ACUERDO A LA TABLA N 2 EN QUE RANGO SE ENCUENTRAN LOS EGRESOS:'),nl,nl, write('1.3.000.001_A_3.500.000.'),nl, write('2. 3.500.001_A_4.000.000.'),nl, write('3. 4.000.001_A_4.500.000 '),nl, write('4. 4.500.001_5.000.000.'),nl, write('5.5.000.001_A_5.500.000.'),nl, write('6.5.500.0001_A_6.000.000.'),nl, write('7.pregunta9.'),nl, read(N14),

taplu7(N14). taplu7(1):-assert(egresos(medios)),!. taplu7(2):-assert egresos(medios)),!. taplu7(3):-assert(egresos(medios)),!. taplu7(4):-assert(egresos(medios)),!. taplu7(5):-assert(egresos(medios)),!. taplu7(6):-assert(egresos(medios)),!. taplu7(7):-assert(egresos(altos)),!. taplu7(_):-pregunta8,!. pregunta9:write(' DE ACUERDO A LA TABLA N 3 EN QUE RANGO SE ENCUENTRAN LOS EGRESOS:'),nl,nl, write('1.6.000.001_A_10.000.000.'),nl, write('2. 10.000.001_A_14.000.000.'),nl, write('3. 14.000.001_A_18.000.000 '),nl, write('4. 18.000.001_22.000.000.'),nl, write('5.22.000.001_A_26.000.000.'),nl, write('6.26.000.0001_A_30.000.000.'),nl, write('7.30.000.0001_A_34.000.000.'),nl, write('8.pregunta10.'),nl, read(N16), taplo8(N16). taplo8(1):-assert(egresos(altos)),!. taplo8(2):-assert(egresos(altos)),!. taplo8(3):-assert(egresos(altos)),!. taplo8(4):-assert(egresos(altos)),!. taplo8(5):-assert(egresos(altos)),!. taplo8(6):-assert(egresos(altos)),!. taplo8(7):-assert(egresos(altos)),!. taplo8(8):-assert(egresos(muy altos)),!. taplo8(_):-pregunta9,!. pregunta10:write(' DE ACUERDO A LA TABLA N 4 EN QUE RANGO SE ENCUENTRAN LOS EGRESOS:'),nl,nl, write('1.34.000.001_A_40.000.000.'),nl, write('2. 40.000.001_A_46.000.000.'),nl, write('3. 46.000.001_A_52.000.000 '),nl, write('4. 52.000.001_A_58.000.000.'),nl, write('5.58.000.001_A_64.000.000.'),nl, write('6.64.000.0001_A_100.000.000.'),nl, write('7.no aplica.'),nl,

read(N18), tapla9(N18). tapla9(1):-assert(egresos(muyaltos)),!. tapla9(2):-assert(egresos(muyaltos)),!. tapla9(3):-assert(egresos(muyaltos)),!. tapla9(4):-assert(egresos(muyaltos)),!. tapla9(5):-assert(egresos(muyaltos)),!. tapla9(6):-assert(egresos(muyaltos)),!. tapla9(7):-assert(egresos(muyaltos)),!. tapla9(_):-pregunta10,!. purgar:-retract(cartera(_)), retract(fincaraiz(_)), retract(ingresos(_)), retract(egresos(_)),!. continue('s'):-empezar,!. continue('S'):-empezar,!. continue('n'):-continue('N'). continue('N'):-write(' FUE UN PLACER AYUDARTE'),nl, write('............HASTA PRONTO............'). unir:cupo(C), write('el cupo asignado al cliente puede ser: '),nl, write(' '),write(C),nl,nl, purgar, pregunta. pregunta:-nl,nl, write('Desea continuar s/n : '), read(X), continue(X).

PRUEBAS DEL SISTEMA EXPERTO PRIMERA PRUEBA EL ESTADO ACTUAL DE CARTERA DEL CLIENTE ES:

1. CARERA A 30_DIAS. 2. CARTERA A 60_DIAS. 3. CARTERA AL DIA. |: 1. POSEE FINCA RAIZ EL CLIENTE: 1. SI. 2. NO. |: 1. DE ACUERDO A LA TABLA N 1 EN QUE RANGO SE ENCUENTRAN LOS INGRESOS: 1. 0_A_500.000. 2. 500.001_A_1.000.000. 3. 1.000.001_A_1.500.000 4. 1.500.001_A_2.000.000. 5. 2.000.001_A_2.500.000. 6. 2.500.0001_A_3.000.000. 7. no aplica. |: 5. DE ACUERDO A LA TABLA N 2 EN QUE RANGO SE ENCUENTRAN LOS INGRESOS: 1.3.000.001_A_3.500.000. 2. 3.500.001_A_4.000.000. 3. 4.000.001_A_4.500.000 4. 4.500.001_5.000.000. 5.5.000.001_A_5.500.000. 6.5.500.0001_A_6.000.000. 7.no aplica. |: 7. DE ACUERDO A LA TABLA N 3 EN QUE RANGO SE ENCUENTRAN LOS INGRESOS: 1.6.000.001_A_10.000.000. 2. 10.000.001_A_14.000.000.

3. 14.000.001_A_18.000.000 4. 18.000.001_22.000.000. 5.22.000.001_A_26.000.000. 6.26.000.0001_A_30.000.000. 7.30.000.0001_A_34.000.000. 8.no aplica. |: 8. DE ACUERDO A LA TABLA N 4 EN QUE RANGO SE ENCUENTRAN LOS INGRESOS: 1.34.000.001_A_40.000.000. 2. 40.000.001_A_46.000.000. 3. 46.000.001_A_52.000.000 4. 52.000.001_A_58.000.000. 5.58.000.001_A_64.000.000. 6.64.000.0001_A_100.000.000. 7.no aplica. |: 7. DE ACUERDO A LA TABLA N 1 EN QUE RANGO SE ENCUENTRAN LOS EGRESOS: 1. 0_A_500.000. 2. 500.001_A_1.000.000. 3. 1.000.001_A_1.500.000 4. 1.500.001_2.000.000. 5.2.000.001_A_2.500.000. 6.2.500.0001_A_3.000.000. 7.no aplica. |: 2. DE ACUERDO A LA TABLA N 2 EN QUE RANGO SE ENCUENTRAN LOS EGRESOS: 1.3.000.001_A_3.500.000. 2. 3.500.001_A_4.000.000. 3. 4.000.001_A_4.500.000 4. 4.500.001_5.000.000. 5.5.000.001_A_5.500.000. 6.5.500.0001_A_6.000.000.

7.no aplica. |: 7. DE ACUERDO A LA TABLA N 3 EN QUE RANGO SE ENCUENTRAN LOS EGRESOS: 1.6.000.001_A_10.000.000. 2. 10.000.001_A_14.000.000. 3. 14.000.001_A_18.000.000 4. 18.000.001_22.000.000. 5.22.000.001_A_26.000.000. 6.26.000.0001_A_30.000.000. 7.30.000.0001_A_34.000.000. 8.no aplica. |: 8. DE ACUERDO A LA TABLA N 4 EN QUE RANGO SE ENCUENTRAN LOS EGRESOS: 1.34.000.001_A_40.000.000. 2. 40.000.001_A_46.000.000. 3. 46.000.001_A_52.000.000 4. 52.000.001_A_58.000.000. 5.58.000.001_A_64.000.000. 6.64.000.0001_A_100.000.000. 7.no aplica. |: 7. el cupo asignado al cliente puede ser: SE ASIGNA CUPO DE 1,000,001 A 1,500,000

CONCLUSIONES

como vemos hoy en día los sistemas expertos buscan extraer el conocimiento de las personas que llevan años desarrollando el mismo cargo y que gracias a esta experiencia sanben como definir determinadas situaciones que se presentan y solucionarlas para favorecer a la empresa. Las empresas cada día se dan cuenta que cuando un trabajador adquiere cierto conocimiento en la empresa y luego se, el trabajador se lleva ese conocimiento es un valor mas que tiene el trabajador, por consiguiente las empresas buscan que el trabajador deje una parte de ese conocimiento en la empresa y la mejor solución es un sistema experto. Hoy en día el mercado competitivo es cada vez mas difícil y el cliente busca es el proveedor que lo atienda con mayor eficiencia, si no se tiene tiempos cortos para dar una respuesta al cliente, este busca otro proveedor, es por esto que si tenemos un sistema experto, no tendríamos que contar con la disposición de reunir a las personas encargadas para hacer el análisis, si nos que una sola persona lo haría.

• Si los sistemas expertos extraen la información de las personas y lo que mejor hacen en un futuro, que harán esos expertos si una maquina ya hace lo que ellos hacían tan bien y los diferenciaba de los demás.

Sign up to vote on this title
UsefulNot useful