Prolog - prolog

 
Vista:

prolog

Publicado por emerson (1 intervención) el 15/06/2006 22:25:56
necesito un ejercicio de prolog con ciclos en el que se digiten n obreros y para cada obrero solicita su salario, y al final solo necesito como resultado la suma de todos los salarios..

si alguiensabe como hacerlo por ayudenme que tengo un examen parcial sobre esto...

gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:prolog

Publicado por yuniet (4 intervenciones) el 18/06/2006 23:42:02
necesito la solucion de este problema de prolog.
Un Sistemas Basado en Reglas de Producción está formado por una base de datos que contiene proposiciones que se cumplen con un determinado factor de certeza CF (certainty factor). Los valores de certeza significan la seguridad con que se afirma una proposición tomando valores entre –1 y 1. El valor -1 significa que algo es totalmente falso, 1 significa que algo es totalmente cierto o verdadero, mientras que 0 significa que se desconoce totalmente si es cierto o falso. El resto de los valores tienen un significado proporcional a su valor, por ejemplo 0.7 significa un valor de certeza bastante alto de que una proposición sea cierta. Si se conoce el valor de dos proposiciones, se puede calcular el valor de certeza CF de la conjunción de ellas usando la siguiente fórmula CF(A & B) = mínimo(CF(A), CF(B)). Igualmente se puede calcular el valor de la disyunción usando la fórmula CF(A & B) = máximo(CF(A), CF(B)). Por otra parte, a las reglas se les puede asociar un valor de certeza. Por ejemplo: E -> H CF(H/E) = 0.8 significa que si el antecedente E toma valor de certeza 1, entonces el consecuente H tomará valor de certeza 0.8. En caso de que el antecedente tome otro valor de certeza menor que 1 pero mayor que 0 entonces la certeza de H se calcula usando la fórmula de contribución CTR que es la siguiente CF(H) = CTR(CF(E), CF(H/E)) = CF(E)*CF(H/E). SI la CF(E)<0, o sea, si el antecedente es falso, entonces la certeza de H es 0 usando esta regla. Si el antecedente E fuera complejo, por ejemplo E = A&B, o sea, que la regla fuera A&BH, entonces se debe primero usar la fórmula de conjunción para calcular la certeza del antecedente E y luego hacer la contribución para obtener la certeza de H. En el caso de existir alguna proposición negada, entonces puede usarse la fórmula de negación que dice que la certeza de la negación de A, o sea CF(-A) = - CF(A). Por último, si hubiera más de una regla que permite inferir una determinada proposición (es decir hay más de una regla que tiene como consecuente la misma proposición) se debe obtener la certeza acumulada de la proposición teniendo en cuanta ambos resultados. Por ejemplo: si hubiera una regla 1 que sea S&D->H y otra regla 2 que sea G->H, entonces debe primero calcularse la certeza de H por la regla 1 y luego por la regla 2, o sea CF(H:1) y CF(H:2). Con ambos valores ya se puede calcular el valor de H usando la fórmula siguiente llamada global CF(H) = GLOB(CF(H:1), CF(H:2)) = CF(H:1)+CF(H:2)-CF(H:1)*CF(H:2). Usando todas estas fórmulas puede inferirse la certeza de cualquier proposición que dependa de otra. Debe permitirse que el usuario defina cualquier nueva regla.

a.Programe lo necesario para que se pueda hacer la inferencia hacia atrás (backward chaining) que trabaja de un modo muy similar a como lo hace Prolog. Cuando el usuario pide el valor de certeza de una determinada proposición, se buscan todas las reglas que permiten inferirla y se buscan los valores de certezas de todas las proposiciones que están en los antecedentes de las reglas encontradas. Luego de calculados los valores de certeza de estas proposiciones, se calcula el valor de la proposición deseada utilizando las fórmulas anteriormente explicadas. Para calcular el valor de certeza de las proposiciones del antecedente se debe repetir recursivamente el mismo proceso que acaba de explicarse. En el caso de que se necesite el valor de certeza de una proposición que no tenga ninguna regla que permita inferirla entonces se el debe pedir al usuario el valor de certeza de la misma
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:prolog

Publicado por riter (1 intervención) el 26/10/2007 18:37:00
Hola..., quisiera saber como puedo representar en prolog esto que esta a continuacion
void pitagoras(int n)
{
for (int a=1; a<=n;a++)
for (int b=a; b<=n;b++)
for (int c=b; c<=n;c++)
if(a*a+b*b == c*c)
mostrar(a,b,c);
}

que haga lo mismo pero en prolog
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:prolog

Publicado por TuAno (1 intervención) el 28/09/2009 01:05:16
Busca mas bien como hacerlo con recursion mediocre!!!
No busques que te solucionen ejercicios malparido
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar