/XJDUHV:(%HURV $OPDFHQ KWWSZZZFVFPXHGXDIVFVFPXHGXSURMHFWDL UHSRVLWRU\DLKWPODLUKWPO $UW,QWHOO$PRGHUQ$SSURDFK KWWSZZZFVEHUNHOH\HGXaUXVVHOODLPDKWPO Intel. Artif e Ing. del Conocimiento PRÁCTICAS 1 3URORJ ,QWURGXFFLyQ 'HILQLFLyQGHXQSURJUDPDHQ3URORJ &UHDFLyQGHXQVLVWHPDGHSURGXFFLyQ (MHPSOR %DOGHV 1UHLQDV Intel. Artif e Ing. del Conocimiento PRÁCTICAS 2 1 3URORJ,QWURGXFFLyQ 9HUVLyQXWLOL]DGD 9LVXDO3URORJ KWWSZZZSGFGNYLSYLSLQIRIUHHZDUHBGRZQORDGKWP $QWHFHGHQWHV 8WLOL]DFLyQGHODOyJLFDGHSUHGLFDGRV 'LVSRQHGHVXSURSLRPRWRUGHLQIHUHQFLD $OJRULWPRGHXQLILFDFLyQ (VWUDWHJLDGHEDFNWUDFNLQJ (VXQOHQJXDMHGHFODUDWLYR Intel. Artif e Ing. del Conocimiento PRÁCTICAS 3 3URORJ3URJUDPD 8QSURJUDPDWLHQHODVVLJXLHQWHVVHFFLRQHV 'RPLQLRVGRPDLQ (VODGHFODUDFLyQGHORVGRPLQLRVVREUHORVTXHVHH[SUHVDQODV UHODFLRQHV 3UHGLFDGRVSUHGLFDWHV (VODGHFODUDFLyQGHODVUHODFLRQHVSUHGLFDGRVTXHYDQDDSDUHFHU HQODEDVHGHFRQRFLPLHQWRV &ODXVXODVFODXVHV (VODEDVHGHFRQRFLPLHQWRVGRQGHVHH[SUHVDHOFRQRFLPLHQWRVHQ IRUPDGHUHJODV\DVHUFLRQHV 2EMHWLYRVJRDO (VODIyUPXODTXHVHSUHWHQGHKDFHUFLHUWD Intel. Artif e Ing. del Conocimiento PRÁCTICAS 4 2 3URORJ3URJUDPD,, predicates gusta(symbol,symbol) clauses gusta(elena, tenis). gusta(juan, fútbol). gusta(tomas, basket). gusta(eric, nadar). gusta(marco, tenis). gusta(bene, Actividad) if gusta(tomas, Actividad). goal:gusta(elena,fútbol) Intel. Artif e Ing. del Conocimiento PRÁCTICAS 5 3URORJ3URJUDPDFLRQ Obtener un programa en Prolog que determine el coche más adecuado Intel. Artif e Ing. del Conocimiento domains coche=symbol nombre=symbol gusto=symbol predicates gustos(nombre,coche,gusto) auto(coche) compra(nombre,coche) PRÁCTICAS 6 3 3URORJ3URJUDPDFLRQ Ver que el bactrack no solamente permite encontrar una solución, sino todas. clauses Las reglas principales del bactracking son: compra(Persona,Coche):-Los subobjetivos han de ser satisfechos en orden auto(Coche), de arriba a abajo. gustos(Persona,Coche,bueno). -Para satisfacer a estos se testan los predicados gustos(pepe,seat,bueno). de arriba a abajo tal como aparecen en la imagen. gustos(pepe,renault,feo). -Cuando un subobjetivo se empareja con la cabeza gustos(pepe,ferrari,caro). gustos(pepe,ford,bueno). de una regla, el cuerpo de esta se constituye como gustos(jose,seat,bueno). el siguiente subobjetivo a verificar gustos(juan,seat,malo). -Un objetivo ha sido satisfecho cuando se ha gustos(pepe,kawasaki,bueno). conseguido emparejar cada una de sus hojas del árbol auto(seat). de objetivos auto(renault). auto(ferrari). auto(ford). auto(austin). Intel. Artif e Ing. del Conocimiento PRÁCTICAS 7 3URORJ9LVXDO3URORJ Y (WDSDV &UHDFLyQGHOSUR\HFWR&WUO$ 0RGR7H[WR $SOLFDFLyQ:LQ 2SFLRQHV 'HSXUDGRU 1R'HWHUPLQLVWLFR SRUGHIHFWR Intel. Artif e Ing. del Conocimiento PRÁCTICAS 8 4 3URORJ9LVXDO3URORJ Y 9HQWDQDGH SUR\HFWR &RQWLHQHXQ ~QLFRPRGXOR GRQGHVH SUHVHQWDHO FyGLJR Intel. Artif e Ing. del Conocimiento PRÁCTICAS 9 3URORJ*HQHUDFLyQGHXQ VLVWHPDGHSURGXFFLyQ (MHPSOR 8Q SDVWRUKDDWUDYHVDUXQULR HQXQDEDOVDGHGRVSOD]DVFRPR Pi[LPR9DDFRPSDxDGRGHXQORERXQDRYHMD\XQDFROLIORU 'DGDVODVSUHGLFLRQHVJDVWURQyPLFDVGHORVSDUWLFLSDQWHVVH WUDWDGHUHVROYHUHOSUREOHPDFRQ XQVLVWHPDGHSURGXFFLyQ 6HSDUDFLyQ HQWUHEDVHGHGDWRVUHJODV\VLVWHPDGH FRQWURO %DVHGHGDWRVH3/2%GRQGH 3/2%VRQODVSRVLFLRQHV2HVWHR(VWHGHFDGDXQRGHORV PLHPEURV ,PSOHPHQWDFLRQ8WLOL]DQGRIXQFWRUHV)XQFLRQHVGH/332 Intel. Artif e Ing. del Conocimiento PRÁCTICAS 10 5 3URORJ*HQHUDFLyQGHXQ VLVWHPDGHSURGXFFLyQ ,PSOHPHQWDFLRQGHODVUHJODV PRYLPLHQWRVGHFUX]DURULOOD3/323%3 1HFHVLWDGHILQLUXQSUHGLFDGRRSXHVWR 2SXHVWRHR 2SXHVWRRH 6HGHEHLQFOXLUODYHULILFDFLyQGHODSUHFRQGLFLyQ 'HILQLFLyQGHOSUHGLFDGRVHJXUR (MHPSOR,QVHJXURVLHOSDVWRUHVWDHQXQDRULOODGLVWLQWDDODGHO ORER\ODRYHMD 6HGHEHJDUDQWL]DUTXHQRH[LVWHQHVWDGRVUHSHWLGRV 'HILQLFLyQGHOSUHGLFDGRPLHPEUR Intel. Artif e Ing. del Conocimiento PRÁCTICAS 11 3URORJ*HQHUDFLyQGHXQ VLVWHPDGHSURGXFFLyQ ,PSOHPHQWDFLyQGHODVUHJODV Intel. Artif e Ing. del Conocimiento PRÁCTICAS 12 6 3URORJ*HQHUDFLyQGHXQ VLVWHPDGHSURGXFFLyQ 6LVWHPDGHFRQWURO3URSRUFLRQDGRSRUHOOHQJXDMH %DFNWUDFNLQJVLQLQIRUPDFLyQ DATOS <--PRIMER(LISTABD) /,67$%' HV XQD OLVWD GH EDVHV GH GDWRV SURGXFLGDV HQ XQ FDPLQR TXH OOHYD KDFLD DWUiV KDVWD OD LQLFLDO '$726 HV OD TXH VHSURGXMRPiVUHFLHQWHPHQWH if MIEMBRO(DATOS,SUPR(LISTABD)), return FALLO (O SURFHGLPLHQWR IDOOD VL '$726KDEtDVLGRREWHQLGD\DDQWHULRUPHQWHHQHVHFDPLQR 3. if TERM(DATOS), return NADA if LONGITUD(LISTABD) > LIMITE, return FALLO (O SURFHGLPLHQWR IDOOD VL VH KDQ DSOLFDGR GHPDVLDGDV UHJODV /,0,7( HV XQD YDULDEOH JOREDO HVSHFLILFDGD DQWHV GH TXHVHDOODPDGRHOSURFHGLPLHQWR 6. REGLAS <--APLIREGL(DATOS) 7. CICLO: if NOHAY(REGLAS), return FALLO 8. R <--PRIMER(REGLAS) 9. REGLAS <--SUPR(REGLAS) 10. RDATOS <--R(DATOS) RLISTABD <--CONS(RDATOS,LISTABD) OD OLVWD GH EDVHV GH GDWRV REWHQLGDV KDVWDHVHSXQWRVHDPSOtDDxDGLpQGROH5'$726 12. CAMINO <--BACKTRACK1(RL/STABD) 13. if CAMINO = FALLO, go CICLO 14. return CONS(R,CAMINO) Intel. Artif e Ing. del Conocimiento PRÁCTICAS Objetivos se evalúan de arriba a abajo 4. if SINSALIDA(DATOS), return FALLO 13 3URORJ*HQHUDFLyQGHXQ VLVWHPDGHSURGXFFLyQ 'HILQLFLyQGHOREMHWLYR,QFOXLUHQJRDOSULQFLSDO Resultado de la ejecución Intel. Artif e Ing. del Conocimiento PRÁCTICAS 14 7 3URORJ'HSXUDFLyQ +HUUDPLHQWDVHSDUDGD Intel. Artif e Ing. del Conocimiento PRÁCTICAS 15 3URORJ (MHUFLFLRV 5HDOL]DUORVSURJUDPDVHQ3URORJTXHUHVXHOYHQORVVLJXLHQWHV SUREOHPDV ³(QFRQWUDUODVHFXHQFLDVGHPRYLPLHQWRVGHXQFDEDOORTXHXQH GRVSRVLFLRQHVFXDOTXLHUD´ ³&RORFDU1GDPDVHQXQWDEOHUR1[1´ ³'DGRVGRVEDOGHVGH\OLWURVLQLFLDOPHQWHYDFtRVHQFRQWUDUOD VHFXHQFLDGHRSHUDFLRQHVTXHKD\TXHUHDOL]DUSDUDTXHHOGH OLWURVWHQJDODPLWDGGHVXFRQWHQLGR´ 5HDOL]DUXQDLPSOHPHQWDFLyQGHVLVWHPDGHSURGXFFLyQTXH LQFRUSRUHODOLPLWDFLyQHQSURIXQGLGDGGHODE~VTXHGD Intel. Artif e Ing. del Conocimiento PRÁCTICAS 16 8