- Caso del Granjero agregando portada personalizada.
- Algoritmos? No recuerdo a que se refiere esta tarea.
- Tarea de investigación de términos de Prolog.
- Práctica de Turbo Prolog con ejemplos de familiares. tía,
primo, abuela.
- Práctica de Turbo Prolog con ejemplo de familiares. suegro, concunia,
cuñado.
- Abril 30 al 6 de Mayo.
- Mayo 7 al 13.
- Mayo 14 al 20.
- Examen que corresponde según las indicaciones del sorteo.
T3.1 - Caso del el Granjero agregando portada
personalizada.
REALIZA UN CLICK EN GRAJERO.EXE PARA BAJAR EL ARCHIVO EJECUTABLE
database
orillaizquierda(symbol)
orilladerecha(symbol)
gposicion(symbol)
predicates
mover(symbol)
legal
rio_atravesado
rio
navegar(symbol,symbol)
disponer
transportizquierda(symbol,integer,integer,integer)
transportderecha(symbol,integer,integer,integer)
checkgranjero
movergranjero(integer)
goal
assert(orilladerecha(pollo)),
assert(orilladerecha(grano)),
assert(orilladerecha(zorra)),
rio_atravesado.
clauses
rio_atravesado:-
disponer,
orilladerecha(X),
mover(X),
orillaizquierda(pollo),
orillaizquierda(zorra),
orillaizquierda(grano),
cursor(20,8),
write("Todos
del otro Lado"),nl,nl.
mover(X):-
checkgranjero,
assert(orillaizquierda(X)),
retract(orilladerecha(X)),
navegar(X,izquierda),
legal,!.
mover(X):-
orillaizquierda(Y),Y<>X,
retract(orillaizquierda(Y)),
navegar(Y,derecha),
assert(orilladerecha(Y)),!.
mover(X):-
retract(orillaizquierda(X)),
navegar(X,derecha),
assert(orilladerecha(X)).
legal:-
orillaizquierda(zorra),
orillaizquierda(grano).
legal:-
orilladerecha(grano),
orilladerecha(zorra).
rio:-
line(5000,12000,25000,12000,5),
line(5000,18000,25000,18000,5).
navegar(zorra,izquierda):-
transportizquierda(zorra,9,25,5).
navegar(pollo,izquierda):-
transportizquierda(pollo,12,25,5).
navegar(grano,izquierda):-
transportizquierda(grano,15,25,5).
navegar(zorra,derecha):-
transportderecha(zorra,9,5,25).
navegar(pollo,derecha):-
transportderecha(pollo,12,5,25).
navegar(grano,derecha):-
transportderecha(grano,15,5,25).
transportizquierda(T,X1,Y1,Y2):-
Y1=Y2,
cursor(X1,Y1),
write("
"),
cursor(X1,Y1),
write(T),
cursor(6,Y1),
write("
"),
cursor(6,Y1),
readchar(_),
write("granjero"),
readchar(_),
assert(gposicion(izquierda)),!.
transportizquierda(T,X1,Y1,Y2):-
cursor(X1,Y1),
write("
"),
cursor(X1,Y1),
write(T),
cursor(6,Y1),
write("
"),
cursor(6,Y1),
readchar(_),
write("granjero"),
readchar(_),
Z=Y1-1,rio,
transportizquierda(T,X1,Z,Y2).
transportderecha(T,X1,Y1,Y2):-
Y1=Y2,
Temp=Y1-1,
cursor(X1,Temp),
write("
"),
cursor(X1,Y1),
write(T),
cursor(6,Temp),
write("
"),
cursor(6,Y1),
readchar(_),
write("granjero"),
retract(gposicion(izquierda)),!.
transportderecha(T,X1,Y1,Y2):-
Temp=Y1-1,
cursor(X1,Temp),
write("
"),
cursor(X1,Y1),
write(T),
cursor(6,Temp),
write("
"),
cursor(6,Y1),
readchar(_),
write("granjero"),
readchar(_),
Z=Y1+1,rio,
transportderecha(T,X1,Z,Y2).
disponer:-
graphics(1,1,0),
cursor(0,3),
write("Universidad
Autonoma de Tamaulipas"),
cursor(4,3),
write("Unidad
Academica Multidisciplinaria"),
cursor(5,16),
write("Zona
Sur"),
cursor(8,10),
write("INTELIGENCIA
ARTIFICIAL"),
cursor(9,3),
write("Ing.
Julio A. Serrano De Los Santos"),
cursor(13,10),
write("PROGRAMA
DEL GRANJERO"),
cursor(16,15),
write("INTEGRANTES:"),
cursor(17,3),
write("Jaime
Rodriguez Echavarria 9610817"),
cursor(20,15),
write("9
A I.S.C."),
readchar(_),
clearwindow,
rio,
cursor(6,25),
write("Granjero"),
cursor(9,25),
write("Zorra"),
cursor(12,25),
write("Pollo"),
cursor(15,25),
write("Grano"),
cursor(0,4),
readchar(_),
write("Granjero,
Zorra, Pollo, y Grano").
checkgranjero:-
not(gposicion(izquierda)).
checkgranjero:-
movergranjero(5).
movergranjero(Y):-
Y=25,
cursor(6,24),
write("
"),
cursor(6,25),
readchar(_),
write("granjero"),
retract(gposicion(izquierda)),rio,!.
movergranjero(Y):-
Temp=Y-1,
cursor(6,Temp),
write("
"),
cursor(6,Y),
readchar(_),
write("granjero"),
readchar(_),
Z=Y+1,rio,
movergranjero(Z).
1.- Algoritmo Genetico
Un algoritmo genético (AG) es un método
informático de búsqueda de soluciones que está basado
en mecanismos genéticos y en la selección natural.
Los AG constituyen una formalización de los procesos evolutivos, y con ellos podemos simular la evolución en los ordenadores.
Los AG nos interesan por dos razones:
* Sintetizan dos disciplinas aparentemente dispares
como son la biología y las ciencias de la computación, permitiendo
iluminar viejos problemas desde nuevas perspectivas.
* Como método de búsqueda de soluciones
es rápido, se puede aplicar a las más variadas situaciones
, y es sencillo de programar y de entender.
2.- Método analítico
Si existe la función F, es de una sola variable,
y se puede derivar dos veces en todo su rango, se pueden hallar todos sus
máximos, sean locales o globales. Sin embargo, la mayoría
de las veces no se conoce la forma de la función F, y si se conoce,
no tiene porqué ser diferenciable ni siquiera una vez.
Métodos exhaustivos, aleatorios y heurísticos
Los métodos exhaustivos recorren todo el
espacio de búsqueda, quedándose con la mejor solución,
y los heurísticos utilizan reglas para eliminar zonas del espacio
de búsqueda consideradas "poco interesantes".
Algunos algoritmos de búsqueda, como el
MiniMax, son de este tipo; se suelen utilizar en juegos para examinar y
podar el árbol de posibilidades a partir de la jugada actual; Deep
Blue, por ejemplo, juega de esta forma.
En los métodos aleatorios, se va muestreando el espacio de búsqueda acotando las zonas que no han sido exploradas; se escoge la mejor solución, y, además, se da el intervalo de confianza de la solución encontrada.
Subiendo la montaña
En estos métodos, también denominados
de hillclimbing, se va evaluando la función en uno o varios puntos,
pasando de un punto a otro en el cual el valor de la evaluación
es superior. La búsqueda termina cuando se ha encontrado el punto
con un valor máximo. En general, un algoritmo escalador funciona
de la forma siguiente
3.- Método Escalador o Algoritmo escalador
*Escoger una solución inicial (xi,...,xn)
*Mientras que siga
subiendo el valor de F, hacer
*Alterar la solución (x'i,...,x'n) = (xi,...,xn)
+ (yi,...,yn), y evaluar F.
*Si F(x'i,...,x'n) > F(xi,...,xn), hacer (xi,...,xn)
= (x'i,...,x'n).
*Volver a 2.
Estos algoritmos toman muchas formas diferentes, según el número de dimensiones del problema solución, el valor del incremento y en la dirección en la cual se tiene que dar. En algunos casos se utiliza el llamado Método Montecarlo (por el casino), en el cual se escoge la nueva solución de forma aleatoria.
El principal problema de este tipo de algoritmos
es que se quedan en el pico más cercano a la solución inicial;
además, no son válidos para problemas multimodales, en los
cuales la función de coste tiene varios óptimos posibles.
Recocimiento simulado
Conocido como Simulated Annealing, en inglés,
el nombre viene de la forma como se consiguen ciertas aleaciones en forja;
una vez fundido el metal, se va enfriando poco a poco, para conseguir finalmente
la estructura cristalina correcta, que haga que la aleación sea
dura y resistente.
Este algoritmo se podría calificar como escalador estocástico, y su principal objetivo es evitar los mínimos locales en los que suelen caer los escaladores.
Para ello, no siempre acepta la solución
óptima, sino que a veces puede escoger una solución menos
óptima, siempre que la diferencia entre ambos tenga un nivel determinado,
que depende de un parámetro denominado temperatura (seguimos con
la metáfora).
4.- Método o Algoritmo de reconocimiento
simulado
*Inicializar la temperatura T, y la solución
inicial (xi,...,xn) y evaluar F(xi,...,xn).
*Repetir los pasos siguientes, hasta que la temperatura
sea nula o el valor de F converja:
*Disminuir la temperatura.
*Seleccionar una nueva solución (xi',...,x'n)
en la vecindad de la anterior (mutar la solución), y evaluarla.
*Si F(x'i,...,x'n) > F(xi,...,xn), hacer (xi,...,xn)
= (x'i,...,x'n), si no, generar un número aleatorio R entre 0 y
1. Si, entonces (xi,...,xn) = (x'i,...,x'n).
Técnicas basadas en población
Este tipo de técnicas pueden ser versiones
de cualquiera de las anteriores, pero en vez de tener una sola solución,
que se va alterando hasta obtener el óptimo, se persigue el óptimo
cambiando varias soluciones; de esta forma es más fácil escapar
de los mínimos locales tan temidos. Entre estas técnicas
se hallan la mayoría de los algoritmos evolutivos.
Técnicas experimentales
En algunos casos, solo el ojo humano es capaz de
evaluar lo apropiada que es una solución a un tema determinado,
por ejemplo, en problemas de diseño o de calidad.
En este caso, se pueden utilizar cualquiera de las técnicas expuestas anteriormente, pero a la hora de evaluar una solución, un experto o experta tendrá que darle una puntuación. Por ejemplo, es lo que se usa cuando uno se prueba ropa para dar con la combinación correcta de colores y estilos.
T3.3 - Tarea de investigación de términos de Prolog.
1. Describe las operaciones con listas permitidas.
Listas
Una lista en Prolog es un conjunto de nombres de
objetos, o átomos, separados por comas y encerrados en paréntesis
cuadrados. Los miembros de una lista deben ser nombres válidos de
objetos, pero todos los miembros deben ser declaraciones de un mismo dominio.
[member1,member2...memberN] o [ ]
La lista puede ser vista, como un objeto don dos
partes:
* La
cabeza de la lista, conformada por el primer elemento.
* La
parte restante de la lista, llamada la cola.
[ann,tenis,tom,skiing]
En la última lista del ejemplo, la cabeza es ann, mientras que la cola de la lista es la lista:
[tenis,tom,skiing].
Algunas Operaciones son:
Uniones, se un elemento a la listas
[el a|[b,c,d]] = [el a,b,c,d]
Búsquedas de miembros
member(broccoli, [la manzana, brócoli, las
galletas])
Agregar una lista a otra.
append([a,b,c],[d,e,f],X)
2. Muestra como se escriben Comentarios.
Al igual que en lenguaje C los comentarios son escritos dentro de los delimitadores /**/
/* Esto es un comentario de Prolog de lo mas chingon !!!!!! me encanta proramar!!!*/
3. Define un Término Compuesto.
Los términos de Prolog básicos son
Entero : Un positivo o el número negativo cuyo valor absoluto está menos de algunos poder aplicación específico de 2
Átomo : Un texto el principio constante con una letra minúscula.
Variables : Empieza con una letra mayúscula o un guión bajo
Estructura: (Termino compuesto) Los objetos estructurados (o simplemente estructuras) son objetos que tienen varios componentes. Los componentes pueden ser a su vez estructuras. Por ejemplo, la fecha, puede ser vista como una estructura con 3 componentes: día, mes y año. Las estructuras son tratadas en el programa como objetos simples, aunque estén formadas por muchos componentes. El orden en que se combinan los componentes dentro de un objeto simple. Todos los componentes en este ejemplo son constantes (2 enteros y un átomo).
fecha(1, enero, 1975)
4. Define Símbolo Atómico.
Átomos y números
Los átomos pueden construirse con cadenas
de letras, dígitos y carácter '_'. Empezando con una letra
minúscula:
anna
nil
x25
x_25
miss_Jones
Cadenas de caracteres encerradas en apóstrofes. Esto se utiliza cuando se quiere, por ejemplo, tener un átomo que empiece con una letra mayúscula. Dependiendo del compilador de Prolog, pueden ser dobles las comillas.
'Tom'
'South_America'
También pueden hacerse legalmente átomos de los símbolos, como sigue:
--\062
++
5. Define Variable Anónima.
Las variables son similares a los átomos, pero es distinguido empezando con o una letra mayúscula o con el guión bajo ( _ )
Anna
Nil
X25
X_25
_miss_Jones
Cuando una variable aparece en una cláusula sola, no se necesita inventar un nombre para ella. Se usa llamarla variable "anónima", cuando es escrito únicamente el signo '_'. Por ejemplo, consideremos la siguiente regla:
hasachild(X) :- parent (X,Y).
La regla dice: para toda X, X tiene un hijo si X es el padre de alguna Y. Nosotros estamos definiendo la propiedad hasachild el cual, no depende del nombre del hijo. Entonces, aquí hay un lugar en donde podemos usar una variable anónima. Si reescribimos la cláusula:
hasachild(X) :- parent(X,_).
Cada vez que aparezca el subguión en una cláusula, representa una nueva variable anónima. El efecto de esta variable, es ignorar todos los objetos en esta posición.
6. Define Términos o argumentos de los predicados.
Predicados
Un predicado es la relación directa con
una expresión. Cada predicado usado en una cláusula de Prolog
debe ser declarado, basado en la declaración de los tipos de dominios
para cada uno de los nombres de los objetos.
El nombre del predicado sigue las reglas para los átomos. Los argumentos pueden ser cualquier término de Prolog.
patient (name,age,weight,blood_pressure).
market (territory,manager,sales).
genus (species,species,species).
Construir Predicados.
El concepto de construir un predicado de evaluación. Un predicado esta predefinido por Prolog. No hay ninguna cláusula en el banco de datos para construir en predicados. Cuando el código encuentra una meta que se construye predicado, llamando un procedimiento predefinido.
Construir predicados normalmente se escribe en el idioma llevaba a cabo el programador. Realizando funciones que no tienen nada que ver con teorema para demostrar algo lógico, como escribir a la pantalla Por esta razón ellos se llaman en ocasiones predicados extra-lógicos.
7. Muestra la Sintaxis de las reglas y los hechos.
Reglas:
Una regla, consiste en una conclusión y
una premisa expresada en el siguiente formato general:
relación (objeto) if
relación
(objeto).
Donde el if especificado es de tipo causal, el cual implica la relación A->B; en donde la regla de Prolog sería: B if A. Hay que hacer notar el punto al final de la expresión. Cualquier número de objetos pueden ser incluidos en el argumento a un lado de la regla, y la premisa puede incluir más de un hecho.
Cláusulas: (Hechos)
Los hechos y las reglas constituyen la base de
conocimiento en Prolog, los cuales conocemos como cláusulas.
Una cláusula es una expresión basada
en hechos con un predicado declarado (relación) y un argumento,
donde se especifican los objetos, o bien, puede ser una regla en la cual
se incluyan expresiones con sus premisas y conclusiones.
patient("Kendall",female,24).
stock("armco","30 Aug",89.25,"up",5).
buy(negociant) :- province("Bordeaux").
El programador de Prolog mantiene los medios de los hechos magnetofónicos y reglas en el banco de datos dinámico, así como los medios para llamarlos. El banco de datos se pone al día por 'consultando o ‘reconsultando’ el programan fuente. También pueden teclearse directamente predicados por el programador, pero ellos no se salvan entre las sesiones.
T3.4 - Práctica de Turbo Prolog con ejemplos de familiares. tía, primo, abuela.
domains
persona=symbol
predicates
vieja(persona)
machote(persona)
tia(persona,persona)
progenitor(persona,persona)
ruca(persona,persona)
el_primo(persona,persona)
hermanilla(persona,persona)
clauses
vieja(maricela).
vieja(herminia).
vieja(ernestina).
machote(eduardo).
progenitor(jaime,herminia).
progenitor(aida,ernestina).
progenitor(jaime_jr,jaime).
progenitor(jaime_jr,aida).
progenitor(eduardo,maricela).
hermanilla(aida,maricela).
tia(Sobrino,Tia):-
progenitor(Sobrino,Padre),
hermanilla(Padre,Tia),
vieja(Tia).
el_primo(P1,Primo):-
progenitor(P1,Padre),
progenitor(Primo,Padre2),
hermanilla(Padre,Padre2),
machote(Primo).
ruca(Nieto,Abuela):-
progenitor(Nieto,Padre),
progenitor(Padre,Abuela),
vieja(Abuela).
T3.5 - Práctica de Turbo Prolog con ejemplo de familiares. suegro, concunia, cuñado.
domains
persona=symbol
predicates
vieja(persona)
machote(persona)
machote(persona)
papa_novia(persona,persona)
concuna(persona,persona)
cunado(persona,persona)
progenitor(persona,persona)
matrimonio(persona,persona)
hermanitos(persona,persona)
clauses
vieja(adriana).
machote(wilson).
machote(ramon).
progenitor(maruca,wilson).
hermanitos(maruca,ramon).
matrimonio(ramon,adriana).
matrimonio(jaime,maruca).
papa_novia(Persona,Suegro):-
matrimonio(Persona,Esposa),
progenitor(Esposa,Suegro),
machote(Suegro).
concuna(Persona,Concuña):-
matrimonio(Persona,Esposa),
matrimonio(Cuñado,Concuña),
hermanitos(Esposa,Cuñado),
vieja(Concuña).
cunado(Persona,Cuñado):-
matrimonio(Persona,Esposa),
hermanitos(Esposa,Cuñado),
machote(Cuñado).
1er. Artículo.- Dice que los mensajes en cadena por vía e-mail es una arma para saturar y amenazar a los servidores. En opinión de Ángel Peña comenta que las "cadenas son ataques informáticos ya que las cadenas pueden ser de todo tipo de contenido.
2do. Artículo.- UnosCientificos descubrieron que la tierra pesa menos de lo pensado. Este nuevo calculo dice que pesa 8.000 billones de toneladas métricas, esta medición fue hecha por la Universidad de Washington, en Seattle.
3er. Artículo.-La movilnety Ciudad virtual Merlin Telecom lanzo un sistema de internet desde el celular en su 1era. fase permitira escuchar y responder el correo y acceder a noticias, asi como escuchar horoscopos y chistes. Contiene tecnología de reconocimiento de voz ASR y de texto TTS.
Artìculo 1.Arrestan a sospechoso de crear virusEste artìculo habla acerca de la persona que causo muchos problemas la semana pasada, con su virus del carta de amor. Este artìculo dice que ya esta arrestado, y por el nombre del virus pensaron que se trataba de una mujer pero segun las pistas los llevaron a un hombre. Éstos registraron el departamento del sospechoso y encontraron revistas de computaciòn pero ninguna computadora. Ahora solo queda seguir investigando y llegar hasta el fin de esto, y sobre todo que si esta persona resulta culpable, pues que reciba su merecido, porque no se ponen a pensar en los problemas que sus dichosos virus ocasionan, ya que todos estamos expuestos a èsto.
Artìculo 2 Atrapado en la redComentan en este articulo muchas de las personas que utilizan Internet, se les vuelve en un hàbito a tal grado, de que necesariamente tienen que navegar. Como dicen esto tal vez no se considere como una enfermedad pero mas que nada para los niños no esta muy bien, hay que controlar este hábito para que no llegue a convertirse en adicciòn.
Artículo 3 ¿Software gratis?Este articulo
nos habla sobre los programas gratis
Los "Freeware" son programas que se entregan sin
costo alguno, ni ahora ni en el futuro.
Los "Shareware" son programas que se entregan para tomarles el gusto, pero que hay que comprar tras un período de prueba.
Free Site NonagsOnly Freeware Freeware Home Freeware
Plus
PRIMER RESÚMEN:ALARMA POR VARIANTE DE 'I LOVE YOU'
Se está difundiendo una variante por internet del virus "i love you" que está siendo agresiva.
"I love you" infectó 45 millones de computadoras hace dos semanas. El nuevo virus "VBS.NewLove" pude incluso destruir todo el contenido del disco duro.
Se dice que no se abran mensajes de procedencia desconocida o que tenganextensiones ejecutables tales como .exe, .com, .jpg y .vbs.
El virus no ha llegado a Europa, pero se peopaga tal como el "i love you", por e-mail, almacenándose en las direcciones del "Outlook Express" de Windows. Este virus se difunde mas lento pero pude ocacionar daños mayores.
SEGUNDO RESÚMEN:CADA VEZ MÁS ACCESIBLE.
El fabricante de PCS mas grande del mundo sacó su computadora de bolsillo Presario 1200 XL-450, al precio de 999 dólares, la cual ya está disponible.
La Presario 1200 cuenta con un procesador Advanced Micro Devices Inc.AMD K62 de 450 MHZ, también cunta con 32 MB de memoria de accesoaleatorio RAM y un disco duro de 5,9 GB. También contiene software que ya trae incorporado, como MicrosoftWorks 2000, Money 2000, Word 2000 y Encarta 2000.
TERCER RESÚMEN:CELULARES SERIÁN LAS SIGUIENTES VÍCTIMAS
Los celulares podrían ser víctimas de virus parecidos al "Love Bug", el cual interrumpió miles de sistemas de computadoras en el mundo.
Los celulares infectados por estos virus podrían grabar las conversaciones de cualquiera y pasarlas a otros; borrar dinero de 'billeteras electrónicas', o acumular grandes cuentas telefónicas.Alguna persona envía un número de teléfono por e-mail y uno tiene que tocarlo para hacer la llamada, así lo dijo un especialista de seguridad en Internet del laboratorio ATT en New Jersey.
ExP3 -Examen que corresponde según las indicaciones del sorteo.
Parcial 3
Examen 4
Exámen Parcial
El examen consiste en realizar
en Turbo Prolog un conjunto de reglas para las relaciones genéricas
(no importa el
sexo):
1. primo_a
2. bisabuelo_a
3. abuelo_a
4. cunado_a
predicates
parent(symbol,symbol)
sibling(symbol,symbol)
abuelos(symbol,symbol)
primo(symbol,symbol)
cunado(symbol,symbol)
bisabuelo(symbol,symbol)
casados(symbol,symbol)
clauses
parent(damian,vianka).
parent(vianka,eduardo).
parent(vianka,mortimer).
parent(susana,lily).
parent(lily,eduardo).
parent(lily,mortimer).
parent(julieta,lluvia).
parent(nora,lluvia).
parent(eduardo,rafael).
parent(mortimer,octavio).
casados(damian,nora).
sibling(Child1,Child2):-
parent(Child1,Parent),
parent(Child2,Parent),
not(Child1=Child2).
abuelos(Child,Abuelo):-
parent(Child,Parent),
parent(Parent,Abuelo).
primo(Child1,Child2):-
parent(Child1,Parent1),
parent(Child2,Parent2),
sibling(Parent1,Parent2).
cunado(Persona,Cunado):-
casados(Cunado,Persona2),
sibling(Persona2,Persona),
not(Persona2=Persona).
bisabuelo(Persona,Bisabuelo):-
parent(Hijo1,Bisabuelo),
parent(Hijo2,Hijo1),
parent(Persona,Hijo2).