+ All Categories
Home > Documents > prolog programacion

prolog programacion

Date post: 21-Feb-2018
Category:
Upload: jean-carlos-senmache-torres
View: 250 times
Download: 0 times
Share this document with a friend

of 38

Transcript
  • 7/24/2019 prolog programacion

    1/38

    Programacin en Prolog parasistemas expertos

    Presentado por:

    Felipe Panaque Flrez

  • 7/24/2019 prolog programacion

    2/38

    DEFINICION DE UN SEu! es un sistemas experto

    #os sistemas expertos son programas que reproducenel proceso intelectual de un experto $umano enun campo particular% Estos sistemas permiten lacreacin de m&quinas que razonan como el $om're%restrin(i!ndose a un espacio de conocimientos limitado)

    #os sistemas expertos tienen la *enta(a+rente a otro tipos deprogramas de Inteligencia ,rti-cial% de proporcionar gran.exi'ilidad a la $ora de incorporar nue*os conocimientos)

    Descripcin Del EsquemaPara realizar un sistema expertointegran dos personas el Expertodel Dominio /pro+esional 01 2un Ingeniero de Conocimiento /programado1

  • 7/24/2019 prolog programacion

    3/38

    Descripcin Del Esquema Para realizar un sistema experto integran dos personas el Experto del

    Dominio /pro+esional 01 2 un Ingeniero de Conocimiento /programador1#a 3ase de conocimiento nos $alla la 'ase datos 2 estas estacompuestas por lengua(es de predicado% esta es uno de los componentesque contiene el conocimiento del experto o tam'i!n llamado 'ase dedatos Existen dos tipos de 'ase de conocimiento: El procedural 4Se usa en los lengua(es) estructurados como son Pascal% C% 5isual 3asic

    etc) El declarati*o4 Esta 'asado en $ec$os que *ienen a seracciones que se dan dentro del pro'lema se ulitizanlos lengua(es Prolog 2 #isp)

    No es necesario reprogramar todo el sistema experto) #asreglas suelen almacenarse en alguna secuencia (er&rquica lgicametarreglas /reglas so're otras reglas1 2 su +uncin es indicar 'a(o qu!condiciones de'en considerarse unas reglas en *ez de otras)

    SI $a2 reglas que usan materias 'aratas 6 $a2 reglas que usan materiascaras EN7ONCES usar antes las primeras que las segundas #a 'ase dedatos o 'ase de $ec$os es una parte de la memoria del ordenadorque se utiliza para almacenar los datos reci'idos inicialmente para laresolucin de un pro'lema

  • 7/24/2019 prolog programacion

    4/38

    Arquitectura bsica de los SEBase de conocimientos) Es la parte del sistema expertoque contiene el conocimiento so're el dominio) $a2 queo'tener el conocimiento del experto 2 codi-carlo en la 'asede conocimientos)Una +orma cl&sica de representar el conocimiento en unsistema experto son las reglas)Una regla es una estructura condicional que relacionalgicamente la in+ormacin contenida en la parte delantecedente con otra in+ormacin contenida en la parte del

    consecuente)Base de hechos (Memoria de trabajo)) Contiene los$ec$os so're un pro'lema que se $a descu'ierto duranteuna consulta) Durante una consulta con el sistema experto%el usuario introduce la in+ormacin del pro'lema actual en

    la 'ase de $ec$os) El sistema empare(a esta in+ormacincon el conocimiento disponi'le en la 'ase de conocimientospara deducir nue*os $ec$os)Motor de inferencia.El sistema experto modela elproceso de razonamiento $umano con un mdulo conocido

    como el motor de in+erencia) Dic$o motor de in+erenciatra'a(a con la in+ormacin contenida en la 'ase de

  • 7/24/2019 prolog programacion

    5/38

    Subsistema de explicacin) Una caracter8stica de los sistemasexpertos es su $a'ilidad para explicar su razonamiento) Usando elmdulo del su'sistema de explicacin% un sistema experto puedeproporcionar una explicacin al usuario de por qu! est& $aciendouna pregunta 2 cmo $a llegado a una conclusin) Este mduloproporciona 'ene-cios tanto al dise9ador del sistema como alusuario) El dise9ador puede usarlo para detectar errores 2 elusuario se 'ene-cia de la transparencia del sistema)

    nterfa! de usuario) #a interaccin entre un sistema experto 2 unusuario se realiza en lengua(e natural) 7am'i!n es altamente

    interacti*a 2 sigue el patrn de la con*ersacin entre seres$umanos) Para conducir este proceso de manera acepta'le para elusuario es especialmente importante el dise9o del inter+az deusuario) Un requerimiento '&sico del inter+az es la $a'ilidad de$acer preguntas) Para o'tener in+ormacin -a'le del usuario $a2que poner especial cuidado en el dise9o de las cuestiones)

  • 7/24/2019 prolog programacion

    6/38

  • 7/24/2019 prolog programacion

    7/38

    BASA'&S E %E*AS

    +aracter,sticas de los Sistemas Expertos Basados en %e-las %a!onamiento -uiado por las metas / encadenamiento hacia atrs)

    Una t!cnica de in+erencia que usa las reglas IF7;EN para descomponer lasmetas en su'metas m&s +&ciles de pro'ar)

    Manejo de incertidumbre) #a $a'ilidad del SE para tra'a(ar con reglas 2datos que no son conocidos con precisin)

    %a!onamiento -uiado por los datos / encadenamiento haciaadelante) Una t!cnica de in+erencia que usa las reglas IF7;EN paradeducir soluciones a un pro'lema a partir de los datos iniciales disponi'les)

    %epresentacin de datos) #a +orma en que los datos espec8-cos a unpro'lema dado% son almacenados 2 accesados por el SE)

    nterfa! del usuario) #a parte del SE que se usa para una interaccin m&samiga'le con el usuario)

    Explicacin) #a $a'ilidad del SE para explicar sus procesos derazonamiento 2 su uso en el cmputo de recomendaciones)

  • 7/24/2019 prolog programacion

    8/38

    ) % tam'i!n llamadasreglas de produccin% constitu2en el +ormalismom&s popular para representar conocimiento) Enlos sistemas expertos tienen las siguientes

    caracter8sticas desea'les: ? @odularidad: cadaregla de-ne una parte de conocimientopeque9a 2 relati*amente independiente) ?Incremental: se pueden a9adir nue*as reglas ala 'ase de conocimiento% que son relati*amenteindependientes de las otras reglas) ?@odi-ca'le: se pueden cam'iar reglas porotras nue*as) ? 7ransparente: es capaz deexplicar las decisiones tomadas 2 las solucionesplanteadas)

  • 7/24/2019 prolog programacion

    9/38

  • 7/24/2019 prolog programacion

    10/38

    Prolog es el lengua(e m&s di+undidoen la programacin lgica) ,lgunas desus caracter8sticas son: Prolog usa *aria'les lgicas% las cuales no

    son compara'les a las de otros lengua(es)#os programadores las pueden usar como='lancos> en estructuras de datos que sellenan gradualmente mientras corre el

    proceso)

  • 7/24/2019 prolog programacion

    11/38

  • 7/24/2019 prolog programacion

    12/38

  • 7/24/2019 prolog programacion

    13/38

    Prolog es un lengua(edeclarati*o

    #as claAsulas muestran lo que es ciertoso're un pro'lema% en *ez deinstrucciones de cmo lograr la solucin)

    El sistema interno de Prolog usa lasclaAsulas para 'uscar como lograr lasolucin 'uscando en el espacio desoluciones)

    No todos los pro'lemas pueden serresueltos de esta +orma% por lo queincorpora sentencias extralgicas)

  • 7/24/2019 prolog programacion

    14/38

    E(emplo: concatenar listas , 2 3

    list procedure cat/list a% list '1B list t list u cop2list/a14 $ile /t)tail nil1 t t)tail4 t)tail '4 return u4

    En un lengua(e imperati*o

    En un lengua(e declarati*o

    En un lengua(e +uncionalcat/a%'1 i+ ' nil t$en a

    else cons/$ead/a1%cat/tail/a1%'11

    cat/GH% % 1)cat/G;J7H% #% G;JH1 : cat/7% #% 1)

  • 7/24/2019 prolog programacion

    15/38

    Sintaxis completa de Prolog

    Trmino

    Constante VariableTrmino compuesto

    Atomo Nmero

    alpha17

    pagojuan_perez

    gripe

    +

    =/=

    12Q&A

    0

    157

    1.618

    2.0e!27

    !1".6

    gu#$a%juan (aria)

    li*ro%er,an$e# -uijo$e)

    %)1 " g%a) 7

    !%+%15 17) $)

    15 + 17 ! $

    3

    Quinena

    4ner(ea_257

    _

    Nombra un individuo Reemplaza un individuoque no puede ser nombrado

    cuando el programa se

    escribe

    Nombra un individuo quetiene partes

  • 7/24/2019 prolog programacion

    16/38

    7!rminos compuestos

    padres/manc$as% pongo% perdita1

    Functor (un tomo) de arity 3. componentes (trminos)

    Se puede mostrar el t!rmino como un &r'ol

    padres

    perditapongo

    manc$as

  • 7/24/2019 prolog programacion

    17/38

    Estructura de los programas

    #os programas consisten en procedimientos #os procedimientos consisten en claAsulas

    Cada claAsula es un $ec$o o una regla #os programas se e(ecutan $aciendo preguntas

    Por eemplo!

  • 7/24/2019 prolog programacion

    18/38

    E(emplo

    ele+ante/dum'o1)

    ele+ante/(um'o1)ele+ante/01 : gris/01% mami+ero/01%tiene7rompa/01)

    Procedimiento para ele+ante

    Predicado

    "la#sulas

    Regla

    $ec%os

  • 7/24/2019 prolog programacion

    19/38

    E(emplo

    K ele+ante/(um'o1)

    yes

    K ele+ante/pongo1)

    no

    Pregunta

    Respuesta

  • 7/24/2019 prolog programacion

    20/38

    Interpretacin de lasclaAsulas

    #as claAsulas pueden leerse de +orma declarati*a oprocedimental

    ; : LM% L% % Ln)

    =Se puede demostrar ; ssi LM% L%

    % Lntam'i!n puedan

    demostrarse)>

    =Para e*aluar el procedimiento ;%se e(ecutan los procedimientos LM%

    L% % Lnpre*iamente)>

    &nterpretaci'n

    declarativa

    &nterpretaci'n

    procedimental

  • 7/24/2019 prolog programacion

    21/38

    Uni-cacin

    Dos t!rminos se uni-can si puedensustituirse *aria'les de tal +orma que lost!rminos se $acen id!nticos)

    El algoritmo de uni-cacin procede pordescenso recursi*o de los dos t!rminos) Constantes uni-can si son id!nticas 5aria'les uni-can con cualquier t!rmino%

    inclu2endo otras *aria'les7!rminos compuestos uni-can si el

    +unctor 2 componentes uni-can)

  • 7/24/2019 prolog programacion

    22/38

    E(emplos

    #os t!rminos +/0% a/'%c11 2 +/d% a/% c11 uni-can)

    c

    ad

    +

    ' c

    a0

    +

    #os t!rminos uni-can si se sustitu2e d por 0% 2 'se sustitu2e por ) Esta sustitucin tam'i!n sedenomina instanciacin)

  • 7/24/2019 prolog programacion

    23/38

    E(emplos

    #os t!rminos +/0% a/'%c11 2 +/% a/% c11 se uni-can)

    c

    a

    +

    ' c

    a0

    +

    Ntese que se comparte dentro delmismo t!rmino)

  • 7/24/2019 prolog programacion

    24/38

    E(emplos

    #os t!rminos +/c% a/'%c11 2 +/% a/% c11 no seuni-can

    c

    a

    +

    ' c

    ac

    +

    Estos dos t!rminos no pueden $acerseid!nticos sustitu2endo *aria'les)

  • 7/24/2019 prolog programacion

    25/38

    #istas

    #as listas en Prolog son similares alas de otros lengua(es 2a que secompone de t!rminos de cualquier

    tama9o agrupados) #a lista de largo se llama nil% 2 se

    escri'e GH)

    #a lista de largo nes Gcabeza%colaH%donde colaes una lista de largo nM)

  • 7/24/2019 prolog programacion

    26/38

    Sintaxis de Prolog paralistas

    Nil se escri'e )

    #a lista de nelementos t1% t2% %tnseescri'e as8: t1t2tn

    G0JGHH se escri'e 3

    Para la lista G0JH % 0 es un &tomo 2

    es una lista% con la ca'eza 0 remo*ida

  • 7/24/2019 prolog programacion

    27/38

    7ra'a(ando con listas

    / (ie(*ro%er(ino i#$a) /

    (ie(*ro%3 39).

    (ie(*ro%3 :9) ;! (ie(*ro%3 ).

    emplos

    in reu).

  • 7/24/2019 prolog programacion

    28/38

  • 7/24/2019 prolog programacion

    29/38

    Controlando la ree*aluacin

    olor%ereza rojo).

    olor%*anana a(arillo).

    olor%(anzana rojo).

    olor%(anzana ,ere).

    olor%naranja naranja).

    olor%3 e#onoio).

    X = amarillo

    X = desconocido

    X = desconocido?

    no

  • 7/24/2019 prolog programacion

    30/38

    ClaAsulas 2 'ases de datos

    En una 'ase de datos relacional% las relaciones se consideranta'las% en los que cada elemento de una relacin naria sealmacena como una -la de la ta'la% que cuenta con ncolumnas)

    pro*eedorperez silla ro(o M

    lopez mesa negro R

    Usando claAsulas% se puede representar de la siguiente+orma:

    pro*eedor/perez% silla% ro(o% M1)

    pro*eedor/lopez% mesa% negro% R1)

  • 7/24/2019 prolog programacion

    31/38

    ClaAsulas 2 'ases de datos

    5enta(as de usar claAsulas:

    M)

  • 7/24/2019 prolog programacion

    32/38

    Casos de aplicacin

    Sistemas expertos

    Un sistema in+orm&tico que simula elproceso de aprendiza(e% dememorizacin% de razonamiento% decomunicacin 2 de accin de un experto$umano en una determinada rama de la

    ciencia% suministrando% de esta +orma%un consultor que puede sustituirle conunas ciertas garant8as de !xito

  • 7/24/2019 prolog programacion

    33/38

    Casos de aplicacin

    Sistemas expertos

    Estas caracter8sticas le permitenalmacenar datos 2 conocimiento% sacarconclusiones lgicas% tomar decisiones%aprender de la experiencia 2 los datosexistentes% comunicarse con expertos$umanos u otros Sistemas Expertos%

    explicar el porqu! de las decisionestomadas 2 realizar acciones comoconsecuencia de todo lo anterior

  • 7/24/2019 prolog programacion

    34/38

    Casos de aplicacin

    Procesamiento de lengua(e natural /N#P1 Prolog es un lengua(e mu2 expresi*o para

    plantear algoritmos de ling8stica

    computacional) Para el Procesamiento de#engua(e Natural /N#P1% se requiere lamanipulacin de s8m'olos /pala'ras% +onemas2 otras partes del lengua(e1% 'asados eno'(etos estructurados /secuencias% &r'oles%

    gra+os1) Prolog +acilita la expresin deoperaciones so're los s8m'olos 2 estructurassin preocuparse de la representacin 2manipulacin interna del computador)

  • 7/24/2019 prolog programacion

    35/38

    Casos de aplicacin

    ,signacin de recursos limitados El la'oratorio de in*estigacin de la I3@ ;ai+a

    $a desarrollado un sistema en Prolog para

    asignar a*iones en las l8neas a!reas israel8es El,l) Este pro2ecto se lle* a ca'o para a$orrarcostos operati*os 2 para reducir el uso de losespacios de las compuertas del aeropuerto% quetienen un costo ele*ado por ocupacin)

    El sistema est& conectado en l8nea con elsistema de programacin del El,l 2 seactualiza en tiempo real en cuanto a cam'iosde $orarios de *uelo)

  • 7/24/2019 prolog programacion

    36/38

    Casos de aplicacin

    Dise9o experto de productos

    En este sistema% el dise9o de anteo(os se $ace a la

    medida) Una +otogra+8a de la cara del cliente se alimentacomo datos de entrada) El sistema experto en Prologpropone un dise9o 2 si el cliente aprue'a el dise9o% !stese transmite desde las estaciones gr&-cas a la +&'ricausando una red) El tiempo promedio de entrega es deuna $ora

    #a 'ase de conocimiento para proponer el dise9o inclu2eentre otros% datos so're el color de la piel 2 del pelo delcliente% pre+erencias indi*iduales% conocimientos t!cnicospticos% conocimiento del dise9ador de proponer +orma 2los colores 2 +ormas de moda )

  • 7/24/2019 prolog programacion

    37/38

    Casos de aplicacin

    5eri-cacin de circuitos digitales

    Siemens $a desarrollado en Prolog el sistema C5E% elcual es utilizado para *eri-car de +orma autom&tica el

    comportamiento de salida de un circuito digital comouna +uncin 3ooleana como una +uncin de la entrada)#as +unciones que se o'tienen se comparan de manerasim'lica con las +unciones correspondientes delcircuito usando algoritmos especializados quegarantizan que se detectan las di+erencias encontradas

    El sistema garantiza MV de seguridad% 2a que lacomparacin sim'lica es equi*alente a simular uncircuito con todos los posi'les patrones de entrada%*eri-cando todas las salidas de la simulacin

  • 7/24/2019 prolog programacion

    38/38

    Casos de aplicacin

    Con-gurador /Wizard1 de red deWindos N7 El sistema operati*o @icroso+t Windos N7 utiliza un

    int!rprete interno de Prolog para con-gurar sus sistemas de

    red de &rea local /#,N1 2 de la red de &rea amplia /W,N1) #oscomponentes interdependientes del so+tare 2 de $ardarese a'straen en un marco orientado a o'(etos simpli-cadousando la in+ormacin declarati*a proporcionada por el scriptde instalacin de cada componente) Esta in+ormacin% sealmacena (unto al int!rprete interno% que es consultada paragenerar la me(or con-guracin)

    #os resultados de la consulta% almacenados en la 'ase dedatos de la con-guracin del N7 /registr21% in+orman a cadacomponente o dri*er su orden de la carga 2 asociacin decomponentes


Recommended