Formalizacion - Logica Proposicional PDF
Formalizacion - Logica Proposicional PDF
Formalizacion - Logica Proposicional PDF
Curso 200405
Universidad de Sevilla
PL 200405
Cc Ia
9.1
Alfabeto proposicional:
u u
s mbolos proposicionales. conectivas l ogicas: (negaci on), (conjunci on), (disyunci on), (condicional), (equivalencia). s mbolos auxiliares: ( y ).
F ormulas proposicionales:
u u
.
x
PL 200405
Declaraci on de operadores:
:::::op(610, op(620, op(630, op(640, op(650, fy, xfy, xfy, xfy, xfy, -). &). v). =>). <=>). % % % % % negaci on conjunci on disyunci on condicional equivalencia
PL 200405
Cc Ia
9.3
Valores de verdad
x
Valores de verdad:
u
1: verdadero y 0: falso
PL 200405
Cc Ia
9.4
Funciones de verdad
x
Funciones i i i 1 1 0 1 0 1 0 0
u
de verdad: j ij ij ij ij 1 1 1 1 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 1
funci on de verdad(+Op, +V1, +V2, -V) si Op(V1,V2)=V. funci on de verdad(+Op, +V1, -V) si Op(V1)) = V funci on_de_verdad(v, 0, 0, 0) :- !. funci on_de_verdad(v, _, _, 1). funci on_de_verdad(&, 1, 1, 1) :- !. funci on_de_verdad(&, _, _, 0). funci on_de_verdad(=>, 1, 0, 0) :- !. funci on_de_verdad(=>, _, _, 1). funci on_de_verdad(<=>, X, X, 1) :- !. funci on_de_verdad(<=>, _, _, 0). funci on_de_verdad(-, funci on_de_verdad(-, 1, 0). 0, 1).
Formalizaci on en Prolog de la l ogica proposicional 9.5
PL 200405
Cc Ia
valor(+F, +I, -V) se verica si el valor de la f ormula F en la interpretaci on I es V Ejemplos: ?- valor((p v q) & (-q v r),[(p,1),(q,0),(r,1)],V). V = 1 ?- valor((p v q) & (-q v r),[(p,0),(q,0),(r,1)],V). V = 0
PL 200405
Cc Ia
9.6
Def. de valor: valor(F, I, V) :memberchk((F,V), I). valor(-A, I, V) :valor(A, I, VA), funci on_de_verdad(-, VA, V). valor(F, I, V) :functor(F,Op,2), arg(1,F,A), arg(2,F,B), valor(A, I, VA), valor(B, I, VB), funci on_de_verdad(Op, VA, VB, V).
% F =..[Op,A,B],
PL 200405
Cc Ia
9.7
I interpretaci on principal de F syss I es una aplicaci on del conjunto de los s mbolos proposicionales de F en el conjunto de los valores de verdad. C alculo de las interpretaciones principales:
u
ormula(+F,-L) se verica si L es el conjunto de las interpretaciones interpretaciones f principales de la f ormula F. Ejemplo ?- interpretaciones_f ormula((p v q) & (-q v r),L). L = [[ (p, 0), (q, 0), (r, 0)], [ (p, 0), (q, 0), (r, 1)], [ (p, 0), (q, 1), (r, 0)], [ (p, 0), (q, 1), (r, 1)], [ (p, 1), (q, 0), (r, 0)], [ (p, 1), (q, 0), (r, 1)], [ (p, 1), (q, 1), (r, 0)], [ (p, 1), (q, 1), (r, 1)]]
PL 200405
Cc Ia
9.8
interpretaci on f ormula(?I,+F) se verica si I es una interpretaci on de la f ormula F. Ejemplo: ?- interpretaci on_f ormula(I,(p v q) & (-q v r)). I = [ (p, 0), (q, 0), (r, 0)] ; I = [ (p, 0), (q, 0), (r, 1)] ; I = [ (p, 0), (q, 1), (r, 0)] ; I = [ (p, 0), (q, 1), (r, 1)] ; I = [ (p, 1), (q, 0), (r, 0)] ; I = [ (p, 1), (q, 0), (r, 1)] ; I = [ (p, 1), (q, 1), (r, 0)] ; I = [ (p, 1), (q, 1), (r, 1)] ; No
ormula: Def. de interpretaci on f interpretaci on_f ormula(I,F) :s mbolos_f ormula(F,U), interpretaci on_s mbolos(U,I).
PL 200405
Cc Ia
9.9
s mbolos f ormula(+F,?U) se verica si U es el conjunto ordenado de los s mbolos proposicionales de la f ormula F. Ejemplo: ?- s mbolos_f ormula((p v q) & (-q v r), U). U = [p, q, r] ormula Def. de s mbolo f s mbolos_f ormula(F,U) :s mbolos_f ormula_aux(F,U1), sort(U1,U). s mbolos_f ormula_aux(F,[F]) :atom(F). s mbolos_f ormula_aux(-F,U) :s mbolos_f ormula_aux(F,U). s mbolos_f ormula_aux(F,U) :arg(1,F,A), arg(2,F,B), s mbolos_f ormula_aux(A,UA), s mbolos_f ormula_aux(B,UB), union(UA,UB,U).
Cc Ia
% F =..[_Op,A,B],
PL 200405
9.10
mbolos(+L,-I) se verica si I es una interpretaci on de la lista de interpretaci on s s mbolos proposicionales L. Ejemplo: ?- interpretaci on_s mbolos([p,q,r],I). I = [ (p, 0), (q, 0), (r, 0)] ; I = [ (p, 0), (q, 0), (r, 1)] ; I = [ (p, 0), (q, 1), (r, 0)] ; I = [ (p, 0), (q, 1), (r, 1)] ; I = [ (p, 1), (q, 0), (r, 0)] ; I = [ (p, 1), (q, 0), (r, 1)] ; I = [ (p, 1), (q, 1), (r, 0)] ; I = [ (p, 1), (q, 1), (r, 1)] ; No
Def. de interpretaci on s mbolos interpretaci on_s mbolos([],[]). interpretaci on_s mbolos([A|L],[(A,V)|IL]) :valor_de_verdad(V), interpretaci on_s mbolos(L,IL).
PL 200405
Cc Ia
9.11
es modelo f ormula(+I,+F) se verica si la interpretaci on I es un modelo de la f ormula F. Ejemplos: ?- es_modelo_f ormula([(p,1),(q,0),(r,1)], (p v q) & (-q v r)). Yes ?- es_modelo_f ormula([(p,0),(q,0),(r,1)], (p v q) & (-q v r)). No
PL 200405
Cc Ia
9.12
modelo f ormula(?I,+F) se verica si I es un modelo principal de la f ormula F. Ejemplo: ?- modelo_f ormula(I,(p v q) & (-q v r)). I = [ (p, 0), (q, 1), (r, 1)] ; I = [ (p, 1), (q, 0), (r, 0)] ; I = [ (p, 1), (q, 0), (r, 1)] ; I = [ (p, 1), (q, 1), (r, 1)] ; No
Def. de modelo f ormula: modelo_f ormula(I,F) :interpretaci on_f ormula(I,F), es_modelo_f ormula(I,F).
PL 200405
Cc Ia
9.13
modelos f ormula(+F,-L) se verica si L es el conjunto de los modelos principales de la f ormula F. Ejemplo: ?- modelos_f ormula((p v q) & L = [[ (p, 0), (q, 1), (r, [ (p, 1), (q, 0), (r, [ (p, 1), (q, 0), (r, [ (p, 1), (q, 1), (r, (-q v r),L). 1)], 0)], 1)], 1)]]
PL 200405
Cc Ia
9.14
Satisfacibilidad
x
es satisfacible(+F) se verica si la f ormula F es satisfacible. Ejemplos: ?- es_satisfacible((p v q) & (-q v r)). Yes ?- es_satisfacible((p & q) & (p => r) & (q => -r)). No
PL 200405
Cc Ia
9.15
contramodelo f ormula(?I,+F) se verica si I es un contramodelo principal de la f ormula F. Ejemplos: ?- contramodelo_f ormula(I, p <=> q). I = [ (p, 0), (q, 1)] ; I = [ (p, 1), (q, 0)] ; No ?- contramodelo_f ormula(I, p => p). No
ormula: Def. de contramodelo f contramodelo_f ormula(I,F) :interpretaci on_f ormula(I,F), \+ es_modelo_f ormula(I,F).
PL 200405
Cc Ia
9.16
Validez. Tautolog as
x
F es v alida (o tautolog a) si todas las interpretaciones son modelos de F. Comprobaci on de tautolog as:
u u
es tautolog a(+F) se verica si la f ormula F es una tautolog a. Ejemplos: ?- es_tautolog a((p => q) v (q => p)). Yes ?- es_tautolog a(p => q). No
PL 200405
Cc Ia
9.17
Interpretaciones de conjuntos
x
Una interpretaci on principal de un conjunto de f ormulas es una aplicaci on del conjunto de sus s mbolos proposicionales en el conjunto de los valores de verdad. C alculo de las interpretaciones principales de un conjunto de f ormulas:
u
interpretaciones conjunto(+S,-L) se verica si L es el conjunto de las interpretaciones principales del conjunto S. Ejemplo: ?- interpretaciones_conjunto([p => q, q=> r],U). U = [[ (p, 0), (q, 0), (r, 0)], [ (p, 0), (q, [ (p, 0), (q, 1), (r, 0)], [ (p, 0), (q, [ (p, 1), (q, 0), (r, 0)], [ (p, 1), (q, [ (p, 1), (q, 1), (r, 0)], [ (p, 1), (q, 0), 1), 0), 1), (r, (r, (r, (r, 1)], 1)], 1)], 1)]]
PL 200405
Cc Ia
9.18
Interpretaciones de conjuntos
u
interpretaci on conjunto(?I,+S) se verica si I es una interpretaci on del conjunto de f ormulas S. Ejemplo: ?- interpretaci on_conjunto(I,[p I = [ (p, 0), (q, 0), (r, 0)] I = [ (p, 0), (q, 0), (r, 1)] I = [ (p, 0), (q, 1), (r, 0)] I = [ (p, 0), (q, 1), (r, 1)] I = [ (p, 1), (q, 0), (r, 0)] I = [ (p, 1), (q, 0), (r, 1)] I = [ (p, 1), (q, 1), (r, 0)] I = [ (p, 1), (q, 1), (r, 1)] No => q, q=> r]). ; ; ; ; ; ; ; ;
PL 200405
Cc Ia
9.19
Interpretaciones de conjuntos
x
s mbolos conjunto(+S,?U) se verica si U es el conjunto ordenado de los s mbolos proposicionales del conjunto de f ormulas S. Ejemplo: ?- s mbolos_conjunto([p => q, q=> r],U). U = [p, q, r]
Def. de s mbolos conjunto: s mbolos_conjunto(S,U) :s mbolos_conjunto_aux(S,U1), sort(U1,U). s mbolos_conjunto_aux([],[]). s mbolos_conjunto_aux([F|S],U) :s mbolos_f ormula(F,U1), s mbolos_conjunto_aux(S,U2), union(U1,U2,U).
Cc Ia
PL 200405
9.20
La interpretaci on I es un modelo del conjunto de f ormulas S si I es modelo de todas las f ormulas de S . Comprobaci on de modelo de un conjunto de f ormulas
u
es modelo conjunto(+I,+S) se verica si la interpretaci on I es un modelo del conjunto de f ormulas S. Ejemplos: ?- es_modelo_conjunto([(p,1),(q,0),(r,1)], [(p v q) & (-q v r),q => r]). Yes ?- es_modelo_conjunto([(p,0),(q,1),(r,0)], [(p v q) & (-q v r),q => r]). No
PL 200405
9.21
modelo conjunto(?I,+S) se verica si I es un modelo principal del conjunto de f ormulas S. Ejemplo: ?- modelo_conjunto(I,[(p v q) & I = [ (p, 0), (q, 1), (r, 1)] I = [ (p, 1), (q, 0), (r, 1)] I = [ (p, 1), (q, 1), (r, 1)] No (-q v r),p => r]). ; ; ;
PL 200405
Cc Ia
9.22
modelos conjunto(+S,-L) se verica si L es el conjunto de los modelos principales del conjunto de f ormulas S. Ejemplo: ?- modelos_conjunto([(p v q) L = [[ (p, 0), (q, 1), (r, [ (p, 1), (q, 0), (r, [ (p, 1), (q, 1), (r, & (-q v r),p => r],L). 1)], 1)], 1)]]
PL 200405
Cc Ia
9.23
Consistencia de un conjunto
x
Un conjunto de f ormulas es consistente si tiene modelo e inconsistente en caso contrario. Comprobaci on de consistencia:
u
consistente(+S) se verica si el conjunto de f ormulas S es consistente e inconsistente(+S), si es inconsistente. Ejemplos: ?- consistente([(p v q) & (-q v r),p => r]). Yes ?- consistente([(p v q) & (-q v r),p => r, -r]). No
PL 200405
Cc Ia
9.24
Consecuencia l ogica
x
La f ormula F es consecuencia l ogica del conjunto de f ormulas S (S |= F ) si todos los modelos de S son modelos de F . (S |= F ) syss todas las interpretaciones principales de S {F } que son modelos de S tambi en son modelos de F . Comprobaci on de consecuencia l ogica:
u
ormula F es consecuencia del conjunto de es consecuencia(+S,+F) se verica si la f f ormulas S. Ejemplos: ?- es_consecuencia([p => q, q => r], p => r). Yes ?- es_consecuencia([p], p & q). No
PL 200405
Cc Ia
9.25
Consecuencia l ogica
u
contramodelo consecuencia(+S,+F,?I) se verica si I es una interpretaci on principal de S {F} que es modelo del conjunto de f ormulas S pero no es modelo de la f ormula F. Ejemplos: ?- contramodelo_consecuencia([p], p & q, I). I = [ (p, 1), (q, 0)] ; No ?- contramodelo_consecuencia([p => q, q=> r], p => r, I). No
PL 200405
Cc Ia
9.26
Enunciado: En una isla hay dos tribus, la de los veraces (que siempre dicen la verdad) y la de los mentirosos (que siempre mienten). Un viajero se encuentra con tres isle nos A, B y C y cada uno le dice una frase A dice B y C son veraces syss C es veraz B dice Si A y B son veraces, entonces B y C son veraces y A es mentiroso C dice B es mentiroso syss A o B es veraz Determinar a qu e tribu pertenecen A, B y C.
Representaci on: a, b y c representan que A, B y C son veraces -a, -b y -c representan que A, B y C son mentirosos
PL 200405
Cc Ia
9.27
Idea: las tribus se determinan a partir de los modelos del conjunto de f ormulas correspondientes a las tres frases. ?- modelos_conjunto([a <=> b <=> c <=> L). L = [[ (a, 1), (b, 1), (c, (b & c <=> c), (a & c => b & c & -a), (-b <=> a v b)], 0)]]
PL 200405
Cc Ia
9.28
Enunciado: Disponemos de una base de conocimiento compuesta de reglas sobre clasicaci on de animales y hechos sobre caracter sticas de un animal. Regla 1: Si un animal es ungulado y tiene rayas negras, entonces es una cebra. Regla 2: Si un animal rumia y es mam fero, entonces es ungulado. Regla 3: Si un animal es mam fero y tiene pezu nas, entonces es ungulado. Hecho 1: El animal tiene es mam fero. Hecho 2: El animal tiene pezu nas. Hecho 3: El animal tiene rayas negras. Demostrar a partir de la base de conocimientos que el animal es una cebra.
PL 200405
Cc Ia
9.29
Soluci on: ?- es_consecuencia( [es_ungulado & tiene_rayas_negras => es_cebra, rumia & es_mamifero => es_ungulado, es_mamifero & tiene_pezugnas => es_ungulado, es_mamifero, tiene_pezugnas, tiene_rayas_negras], es_cebra). Yes
PL 200405
Cc Ia
9.30
Enunciado: Juan, Sergio y Carlos trabajan de programador, ingeniero y administrador (aunque no necesariamente en este orden). Juan le debe 1000 euros al programador. La esposa del administrador le ha prohibido a su marido pedir dinero prestado (y este le obedece). Sergio est a soltero. Determinar el trabajo de cada uno. Representaci on: cp (Carlos es programador) ci (Carlos es ingeniero) ca (Carlos es administrador) jp (Juan es programador) ji (Juan es ingeniero) ja (Juan es administrador) sp (Sergio es programador) si (Sergio es ingeniero) sa (Sergio es administrador).
PL 200405
Cc Ia
9.31
Soluci on:
modelos_conjunto( [jp v ji v ja, % Juan es programador, ingeniero o administrador sp v si v sa, % Sergio es programador, ingeniero o administrador cp v ci v ca, % Carlos es programador, ingeniero o administrador % No hay m as de un programador: (jp & -sp & -cp) v (-jp & sp & -cp) v (-jp & -sp & cp), % No hay m as de un ingeniero: (ji & -si & -ci) v (-ji & si & -ci) v (-ji & -si & ci), % No hay m as de un administrador: (ja & -sa & -ca) v (-ja & sa & -ca) v (-ja & -sa & ca), % Juan le debe 1000 pesetas al programador [Luego, Juan no es el programador]: -jp, % La esposa del administrador le ha prohibido a su marido pedir dinero % prestado (y este le obedece) [Luego, Juan no es el administrador]: -ja, % Sergio est a soltero [Luego, no es el adminitrador]: -sa], L). L = [[(ca,1),(ci,0),(cp,0), (ja,0),(ji,1),(jp,0), (sa,0),(si,0),(sp,1)]].
u
PL 200405
Enunciado: Existe nueve s mbolos proposicionales que se pueden ordenar en un cuadrado. Se sabe que existe alguna letra tal que para todos los n umeros las f ormulas son verdaderas (es decir, existe una la de f ormulas verdaderas). El objetivo de este ejercicio demostrar que para cada n umero existe una letra cuya f ormula es verdadera (es decir, en cada columna existe una f ormula verdadera). a1 b1 c1 a2 b2 c2 a3 b3 c3 & a2 & a3) v & b2 & b3) v & c2 & c3) v b1 v c1) & v b2 v c2) & v b3 v c3)).
Formalizaci on en Prolog de la l ogica proposicional 9.33
Soluci on: ?- es_tautolog a((a1 (b1 (c1 => (a1 (a2 (a3 Yes
PL 200405
Cc Ia
Enunciado: Demostrar que es imposible colorear los v ertices de un pent agono de rojo o azul de forma que los v ertices adyacentes tengan colores distintos. Representaci on: 1, 2, 3, 4, 5 representan los v ertices consecutivos del pent agono ri (1 i 5) representa que el v ertice i es rojo ai (1 i 5) representa que el v ertice i es azul
PL 200405
Cc Ia
9.34
Soluci on: ?- inconsistente( [% El v ertice i (1 <= i <= 5) es azul o rojo: a1 v r1, a2 v r2, a3 v r3, a4 v r4, a5 v r5, % Un v ertice no puede tener dos colores: a1 => -r1, r1 => -a1, a2 => -r2, r2 => -a2, a3 => -r3, r3 => -a3, a4 => -r4, r4 => -a4, a5 => -r5, r5 => -a5, % Dos v ertices adyacentes no pueden ser azules: -(a1 & a2), -(a2 & a3), -(a3 & a4), -(a4 & a5), -(a5 & a1), % Dos v ertices adyacentes no pueden ser rojos: -(r1 & r2), -(r2 & r3), -(r3 & r4), -(r4 & r5), -(r5 & r1)]). Yes
PL 200405
Cc Ia
9.35
Enunciado: Demostrar que es posible colorear los v ertices de un pent agono de rojo, azul o negro de forma que los v ertices adyacentes tengan colores distintos. Soluci on:
?- modelo_conjunto(I, [% El v ertice i (1 <= i <= 5) azul, rojo o negro: a1 v r1 v n1, a2 v r2 v n2, a3 v r3 v n3, a4 v r4 v n4, a5 v r5 v n5, % Un v ertice no puede tener dos colores: a1 => -r1 & -n1, r1 => -a1 & -n1, n1 => -a1 a2 => -r2 & -n2, r2 => -a2 & -n2, n2 => -a2 a3 => -r3 & -n3, r3 => -a3 & -n3, n3 => -a3 a4 => -r4 & -n4, r4 => -a4 & -n4, n4 => -a4 a5 => -r5 & -n5, r5 => -a5 & -n5, n5 => -a5 & & & & & -r1, -r2, -r3, -r4, -r5,
PL 200405
Cc Ia
9.36
PL 200405
Cc Ia
9.37
Enunciado: Cuatro palomas comparten tres huecos. Demostrar que dos palomas tienen que estar en la misma hueco. Representaci on: pihj (i= 1, 2, 3, 4 y j= 1, 2, 3) representa que la paloma i est a en la hueco j.
PL 200405
Cc Ia
9.38
Soluci on:
?- inconsistente([ % La paloma i est a en alguna hueco: p1h1 v p1h2 v p1h3, p2h1 v p2h2 v p2h3, p3h1 v p3h2 v p3h3, p4h1 v p4h2 v p4h3, % No hay dos palomas en la hueco 1: -p1h1 v -p2h1, -p1h1 v -p3h1, -p1h1 v -p4h1, -p2h1 v -p3h1, -p2h1 v -p4h1, -p3h1 v -p4h1, % No hay dos palomas en la hueco 2: -p1h2 v -p2h2, -p1h2 v -p3h2, -p1h2 v -p4h2, -p2h2 v -p3h2, -p2h2 v -p4h2, -p3h2 v -p4h2, % No hay dos palomas en la hueco 3: -p1h3 v -p2h3, -p1h3 v -p3h3, -p1h3 v -p4h3, -p2h3 v -p3h3, -p2h3 v -p4h3, -p3h3 v -p4h3]). Yes
PL 200405
Cc Ia
9.39
Enunciado: Un rect angulo se divide en seis rect angulos menores como se indica en la gura. Demostrar que si cada una de los rect angulos menores tiene un lado cuya medida es un n umero entero, entonces la medida de alguno de los lados del rect angulo mayor es un n umero entero.
A C F D E B
Representaci on base: la base del rect angulo mayor es un n umero entero altura: la altura del rect angulo mayor es un n umero entero base x: la base del rect angulo X es un n umero entero altura x: la altura del rect angulo X es un n umero entero
PL 200405
Cc Ia
9.40
?- es_consecuencia( [base_a v altura_a, base_b v base_c v altura_c, base_d v base_e v altura_e, base_f v base_a <=> base_c, base_a & base_d => base_f, base_f & base_a => base_d, base_f & base_d => base_a, base_d & base_e => base_b, base_b & base_d => base_e, base_b & base_e => base_d, base_a & base_b => base, base & base_a => base_b, base & base_b => base_a, base_a & base_d & base_e => base & base_a & base_d => base & base_a & base_e => base & base_d & base_e => base_f & base_e => base, base & base_f => base_e, base & base_e => base_f,
PL 200405
Cc Ia
9.41
PL 200405
Cc Ia
9.42
Enunciado: Calcular las formas de colocar 4 reinas en un tablero de 4x4 de forma que no haya m as de una reina en cada la, columna o diagonal. Representaci on: cij (1 i, j 4) indica que hay una reina en la la i columna j.
PL 200405
Cc Ia
9.43
Soluci on:
?- modelos_conjunto([ % En cada fila hay una reina: c11 v c12 v c13 v c14, c21 v c22 v c23 v c24, c31 v c32 v c33 v c34, c41 v c42 v c43 v c44, % Si en una casilla hay reina, entonces no hay m as c11 => (-c12 & -c13 & -c14) & (-c21 & -c31 & -c41) c12 => (-c11 & -c13 & -c14) & (-c22 & -c32 & -c42) c13 => (-c11 & -c12 & -c14) & (-c23 & -c33 & -c43) c14 => (-c11 & -c12 & -c13) & (-c24 & -c34 & -c44) c21 => (-c22 & -c23 & -c24) & (-c11 & -c31 & -c41) c22 => (-c21 & -c23 & -c24) & (-c12 & -c32 & -c42) & (-c13 & -c31), c23 => (-c21 & -c22 & -c24) & (-c13 & -c33 & -c43) & (-c14 & -c32 & -c41), c24 => (-c21 & -c22 & -c23) & (-c14 & -c34 & -c44) c31 => (-c32 & -c33 & -c34) & (-c11 & -c21 & -c41) c32 => (-c31 & -c33 & -c34) & (-c12 & -c22 & -c42) & (-c14 & -c23 & -c41),
reinas en & (-c22 & & (-c21 & & (-c31 & & (-c23 & & (-c32 & & (-c11 &
sus l neas: -c33 & -c44), -c23 & -c34), -c22 & -c24), -c32 & -c41), -c43 & -c12), -c33 & -c44)
& (-c12 & -c34) & -c13 & (-c33 & -c42), & -c42 & (-c13 & -c22), & (-c21 & -c43)
PL 200405
Cc Ia
9.44
R R
PL 200405
Cc Ia
El problema de Ramsey
u
Enunciado: Probar el caso m as simple del teorema de Ramsey: entre seis personas siempre hay (al menos) tres tales que cada una conoce a las otras dos o cada una no conoce a ninguna de las otras dos. Representaci on: 1,2,3,4,5,6 representan a las personas pij (1 i < j 6) indica que las personas i y j se conocen.
?- es_tautolog a( % Hay 3 personas que se conocen entre (p12 & p13 & p23) v (p12 & p14 & p24) (p13 & p14 & p34) v (p13 & p15 & p35) (p14 & p16 & p46) v (p15 & p16 & p56) (p23 & p26 & p36) v (p24 & p25 & p45) (p34 & p35 & p45) v (p34 & p36 & p46)
PL 200405
v v v v v
v v v v v
9.46
Cc Ia
PL 200405
Cc Ia
9.47
Ejemplos: Comparaci on
x
Comparaci on de la resoluci on de los problemas: Problema S mbolos Inferencias Tiempo mentirosos 3 646 0.00 animales 6 4,160 0.00 trabajos 9 71,044 0.07 cuadrados 9 56,074 0.06 pent agono 3 15 117,716 0.13 palomar 12 484,223 0.50 rect angulos 14 1,026,502 1.08 4 reinas 16 15,901,695 19.90 Ramsey 15 29,525,686 44.27
PL 200405
Cc Ia
9.48
Bibliograf a
x
Alonso, J.A. y Borrego, J. Deducci on autom atica (Vol. strucci on l ogica de sistemas l ogicos) (Ed. Kronos, 2002) www.cs.us.es/~jalonso/libros/da1-02.pdf
u
1:
Con-
BenAri, M. Mathematical Logic for Computer Science (2nd ed.) (Springer, 2001)
u
Fitting, M. First-Order Logic and Automated Theorem Proving (2nd ed.) (Springer, 1995) Nerode,A. y Shore, R.A. Logic for Applications (Springer, 1997)
PL 200405
Cc Ia
9.49