miércoles, 12 de septiembre de 2018

INSERTAR DATO EN NODO




CREACION DE LISTA SIMPLE


CREACIÓN Y ELIMINACIÓN AL FINAL


ELIMINAR DATO 





TALLER 1




TALLER 3

#include <stdio.h>
#include <stdlib.h>
#include<conio.h> 
struct nodo{
char nombre[30];
char inf;
char codigo;
struct nodo *sig;
};
main(){
int op;
do{
printf("\n   1.Crear una lista vacia");
printf("\n   2.Crear un nodo al comienzo");
printf("\n   3.Crear un nodo al final");
printf("\n   4.Crear un nodo antes de otro como referencia");
printf("\n  5.Salir \n");
scanf("%d",&op);
switch(op){
case 1:
struct nodo *v;
v=(struct nodo *) malloc (sizeof(struct nodo));
v->codigo=NULL;
v->sig=NULL;
printf("%d %d",v->codigo, v->sig);
case 2:
struct nodo *cabe;
     struct nodo *nuevo;
     struct nodo *aux;
     cabe=NULL;
     char dato;
     int cant, i=0;
     printf("\n Entrar cantidad de nodos: \n");
scanf("%d",&cant); 
     while(i<=cant){
     struct nodo *P; 
     P=(struct nodo *)malloc(sizeof(struct nodo));
     printf("Escriba un nombre: \n");
     fgets (P->nombre, 30, stdin); 
     printf ("La cadena leida es: \n %s",P->nombre);getch(); 
     P->sig=NULL;
i++; 
     while(!'\n'){ 
         struct nodo *Q; 
         Q=(struct nodo *)malloc(sizeof(struct nodo)); 
         fgets (Q->nombre, 30, stdin); 
        printf ("La cadena leida es: %s\n", Q->nombre);
getch();             
         Q->sig=P; 
         P=Q; 
     }
     }
}
}while(op!=5);
}

INSERTAR UN NODO EN UNA LISTA DOBLE ENLAZADA

#include <stdlib.h>
#include<stdio.h>
#include <string.h>

struct nodo {
char inf[30];
struct nodo *ligaizq;
struct nodo *ligader;
};
main (){
struct nodo *lista1;
struct nodo *lista2;
struct nodo *lista3;
struct nodo *lista4;

lista1=(struct nodo *) malloc (sizeof(struct nodo));
fgets(lista1->inf,30,stdin);
lista1->ligaizq=NULL;
lista1->ligader=NULL;
lista2=(struct nodo *) malloc (sizeof(struct nodo));
fgets(lista2->inf,30,stdin);
lista1->ligader=lista2;
lista2->ligaizq=lista1;
lista2->ligader=NULL;
lista3=(struct nodo *)malloc(sizeof(struct nodo));
fgets(lista3->inf,30,stdin);
lista2->ligader=lista3;
lista3->ligaizq=lista2;
lista3->ligader=NULL;
printf("Los nombres agregados inicialmente son: \n %s %s %s",lista1->inf,lista2->inf,lista3->inf);
printf("El nombre a desear es: ");
lista4=(struct nodo *)malloc(sizeof(struct nodo));
fgets(lista4->inf,30,stdin);
lista2->ligader=lista4;
lista4->ligaizq=lista3;
lista3->ligaizq=NULL;

printf("Los nombres agregados inicialmente son: \n %s %s %s %s",lista1->inf,lista2->inf,lista4->inf,lista3->inf);
}



miércoles, 30 de mayo de 2018

RESOLUCION DE PREDICADOS



INTRODUCCION

Creado por J.A Robinson en 1965 lo que plante es que el algoritmo cuando detecta un conjunto de cláusulas es insatisfactible se detiene. Si es satisfactible podría detectarlo o no detenerse, y por lo tanto queda incompleto en funcionamiento. Según Robinson, demostró con su regla de resolución que...” sólo con ella y con un algoritmo de refutación y búsqueda en extensión resulta un sistema deductivo consistente y completo para la lógica de predicados".



La resolución es una técnica utilizada para resolver teoremas en lógica y utiliza la refutación para determinar una sentencia determinada.
Ésta se basa en negar la sentencia original para intentar crear una contradicción, demostrando de esta manera que la sentencia original es verdadera. Se aplica a sentencias escritas en forma clausulada. Básicamente, se busca demostrar que la negación de una sentencia genera una contradicción con los hechos conocidos, es decir, que no es satisfacible.


Pasos para lograr la resolución:

1.    Se convierten todas las cláusulas a la forma clausal. 
2.    Se niega el estatuto a probar, se convierte a forma clausal, y se agrega a las cláusulas del punto  (1). 

3.    Se repite lo siguiente hasta encontrar una contradicción. Se escogen dos cláusulas que se    llamarán cláusulas padre, luego, se busca en ellas un par de literales TI y ¬TI tal que una de ellas pertenezca a una cláusula padre y su negación a la otra cláusula padre. Se eliminan ambas literales y se crea el resolvente (se usa la unificación). La cláusula resultante se llama cláusula resolvente y si ésta es vacía, la contradicción fue encontrada; si no, la cláusula resolvente se agrega al conjunto de las demás.





Ejemplo:
                A. Jack es dueño de un perro
                B. Quien es dueño de un perro es amante de los animales
                C. Ningún amante de los animales mata a un animal
                D. O Jack o Curiosidad mató al gato, cuyo nombre era Tuna
                E. ¿Mató Curiosidad al gato?

Pasos:

           Expresar lo anterior como predicados de primer orden, por ejemplo:

            Jack es dueño de un perro: (Ǝ X) perro(X) ^ dueño(Jack, X).

2.                          Se niega el estatuto a probar:

            E. ¬ mata (curiosidad, tuna)

3.                          Se siguen los 8 pasos para transformar las sentencias a su forma
           Clausulada con lo que se obtiene el siguiente conjunto de cláusulas:

           A1. perro(a)
           A2. dueño(jack, a)
             B. ¬ perro(Z) ˅ ¬ dueño(Y, Z) ˅ naturalista(Y)
             C. ¬ naturalista(U) ˅ ¬ animal(W) ˅ ¬ mata(U,W)
           D1. mata(Jack, tuna) ˅ mata(curiosidad, tuna)
           D2. gato(tuna)
             E. ¬ mata(curiosidad, tuna)
             F. ¬ gato(C) ˅ animal




BIBLIOGRAFIA


http://www.kramirez.net/Robotica/Investigacion/II2015/LogicaPrimerOrden/Presentaci%C3%B3n%20de%20la%20investigaci%C3%B3n.pdf



lunes, 9 de abril de 2018

Resolucion de predicados



¿Que es la resolución de predicados?

-Diseñada por J.A Robinson en 1965, significa que si un conjunto es insatisfactible, este algoritmo lo detecta y lo para. Si es satisfactible, podria detectarlo o no parar. EL algoritmo se basa en una inferencia sencilla

¿Cómo funciona?

-Resolución Proposicional:  Se cumple P o Q y la negacion P o R entonces se cumple Q o R.

Ejemplo: si se tiene un "Gana, empata o pierde" y "Si gana da una fiesta o va de viaje".  Se puede deducir que "O pierde o empata o da una fiesta o va de viaje".

Formalización:

P1: G v P v E
P2: G->F v V  es equivalente a ¬G v F v V

La regla de resolución inferirá: Dadas dos clausulas, C1 y C2 tales que exista un literal L de forma que L no pertenezca a C1 y ¬L  pertenezca a C2,  se denomina resolvente de C1 y C2 respecto a L.


Consistencia de la regla de resolución: el resolvente de los clausulas es consecuencia lógica de ellas. Es decir {C1,C2}=>R(C1,C2)

Resolución General:

Es una generalización de la resolución proposicional, el cual incluye un paso previo de unificación de clausulas mediante sustituciones.

Sustitución: 

Método para modificar formulas y su proposito para con la unificación en un conjunto de expresiones, y este resulten sintácticamente identicas.






Bibliografia:

http://di002.edv.uniovi.es/~labra/FTP/LPRED.pdf














Método Analogico

Método Analógico 


INTRODUCCIÓN


La lógica proposicional estudia las proposiciones u oraciones por medio de métodos de razonamiento. Uno de ellos es el Método Analógico, del cual hablaremos a continuación.


El método analógico se da por medio de analogías y esta compara dos inferencias similares. Si se sabe una conclusión de una inferencia, esta será igual para la otra. El sistema se resuelve mediante las leyes de la lógica proposicional, no sin antes de formalizar el sistema escribiéndolo en lenguaje lógico.

Leyes de la lógica proposicional:

Estas siempre son verdaderas aun si sus variables -las cuales se obtienen al formalizar la proposición lógica- son falsas. Son expresiones formales que siempre buscan una tautologia. El requisito que se debe tener en caso de que una inferencia sea valida es que tiene que tiene forma de ley lógica, aunque algunas veces se puede ver que la inferencia es valida pero al formalizar esta no cumple con dicho requisito, a estas se les llama inferencia no valida.

Tres principios fundamentales básicos:

  1. Identidad: permite hacer equivalencia entre dos proposiciones que  sostienen un mismo argumento.
  2. No-contradicción: es imposible que una proposiciones sea verdadera y falsa al mismo tiempo.
  3. Tercio Excluido: una proposición es verdadera o falsa y no un caso intermedio.


Leyes de inferencia:

1. Modus Ponens: el condicional o implicación establece una causa-efecto. Hacer referencia a que si tenemos el antecedente y este se afirma, tenemos un consecuente.
Ejemplo: Si llueve, entonces las calles se mojan

   P : llueve. 
  Q : las calles se mojan. 

  

2. Modus Tollens: es el inverso a las condicionales, si tenemos una premisa donde el consecuente es negación, se obtiene la negación del antecedente.


3. Silogismo Hipotético: si tenemos dos formulas condicionales, donde el consecuente de la primera es el antecedente de la segunda, obtenemos otra condicional,formada por  el antecedente de la primera y el consecuente de la segunda


4. Silogismo Disyuntivo: desde de una formula disyuntiva y la negacion de una de sus componentes


5. Dilema constructivo: Desde dos inferencias condicionales y la disyuncione de sus negaciones de sus antecedentes, se obtiene la disyuncion de sus consecuentes.


6. Dilema Destructivo: desde dos formulas y la disyunción de sus negaciones de sus consecuentes se obtiene la disyunción de sus antecedentes.


7. Simplificación: desde la conjuncion de dos formulas se obtiene una de ellas.


8. Conjuncion: Desde dos formulas se obtiene la conjuncion de ambas


9. Adición: desde una formula se obtiene la disyuncion de la misma con otra




Bibliografia:


  • http://razonamientologico12unefa.blogspot.com.co/2008/06/leyes-de-la-lgica-proposicional-y_16.html
  • http://logicaeslost07.blogspot.com.co/2017/03/metodo-analogico-07032017.html





















Programas para solución de problemas de tablas de verdad



Anallogica: 

Herramienta bastante eficaz a la hora de crear tablas de verdad,  la cual nos dejara usar hasta 15 variables, y esta nos dejará hacer  equivalencias y negaciones, perfecta para guardar nuestros trabajos en formato HTML y podemos guardar nuestro archivo y seguir trabajando despues.



GKmap 0.2 :
Es un programa para solucionar problemas del diseño y analisis de flujo de circuitos digitales.



Multisim:

Esta herramienta en su apartado convertidor logico, puede crear tablas de verdad desde un circuito digital




Logical Formula Evaluator:
Edito de sentencias logicas proposicionales










lunes, 19 de marzo de 2018

¿Como comprar un edil?


Formalización del articulo "¿Como comprar un edil?"
de La Silla Vacía


  1.   “Mire doctora, yo tengo 2.000 votos. Mi campaña vale 50 millones de pesos. Setenta, si no me puede conseguir los puestos para mi hija que se acabó de graduar de la universidad y para la esposa del presidente de la Junta de Acción Comunal del barrio. Me los paga a cuotas, 30 por ciento para empezar -  se viene el Día de la madre y hay que conseguir para los mariachis y la rifa-, 30 por ciento en septiembre - el mes del amor y la amistad- y 40 para octubre cuando ya se calienta la campaña. Eso es lo que me está ofreciendo el Concejal X, ¿usted cuánto me va a dar?”


P= Mire doctora, yo tengo 2.000 votos
Q= Mi campaña vale 50 millones de pesos
R= Mi campaña vale 70 millones de pesos
S= puede conseguir los puestos para mi hija que se acabó de graduar de la universidad
T= puede conseguir los puestos para la esposa del presidente de la Junta de Acción Comunal del barrio

W=Me los paga a cuotas
F=30 por ciento para empezar
A= se viene el Día de la madre
B= hay que conseguir para los mariachis
C= hay que conseguir para la rifa
Z= me paga 30 por ciento en septiembre
N=mes del amor
Ñ=mes de la amistad
X=Me paga40 por ciento para octubre
Y=En octubre cuando ya se calienta la campaña
M= Eso es lo que me está ofreciendo el Concejal X  
FORMULAS:
1.     P
2.     Q
3.      ¬(S^T)->R

4.     (W ^ F)
5.     (A ^ B ^ C)

6.     (Z ^ N ^ Ñ)

7.     (X ^ Y)

°. °   M

2.     Cada vez que el calendario llama a elecciones, se reinaugura el mercado electoral. Y el primer eslabón de la cadena, los ediles que trabajan consiguiendo los votos, empiezan su trámite para definir con qué candidato les conviene irse para ganar las elecciones locales. Un ‘mercado’ que se rige como cualquiera, a punta de oferta y demanda. El candidato que logre sumar más ediles en sus filas, tendrá más posibilidades de ganar. Porque quien ha hecho campaña sabe que el poder de un político se mide por el tamaño de la corte que lo sigue.

Aunque, obvio, hay muy buenas excepciones y candidatos que no hacen nada de esto, el mercado de los ediles sí determina en buena parte cómo se ganan realmente las elecciones en ciudades como Bogotá. Sobre todo, para aquellos políticos que no confían suficientemente en sus ideas.


P= Cada vez que el calendario llama a elecciones
Q= se reinaugura el mercado electoral
R= los ediles que trabajan consiguiendo los votos
S= empiezan su trámite para definir con qué candidato les conviene irse para ganar las elecciones locales
T= el primer eslabón de la cadena
Y= Un ‘mercado’ que se rige como cualquiera
A=, a punta de oferta
B= a punta de demanda
U= El candidato que logre sumar más ediles en sus filas
I= tendrá más posibilidades de ganar
M= Porque quien ha hecho campaña sabe que el poder de un político se mide por el tamaño de la corte que lo sigue.

FORMALIZACION:
P->Q
T ->R ^ S
Y-> (A ^ B)
U->I





miércoles, 28 de febrero de 2018

Logica proposicional


LOGICA: ESCRITURA Y TRASCENDENCIA EN LA VIDA COTIDIANA




INTRODUCCION



La lógica es la disciplina que trata de métodos de razonamiento. Es la encargada de decirnos si un argumento es válido o no mediante técnicas. En esta oportunidad nos enfocaremos en la sintaxis, la importancia, y como esta ha ayudado a la humanidad.



Lógica de las proposiciones:
Las proposiciones son oraciones que suelen ser verdaderas o falsas pero nunca las dos, y que con lógica se puede llegar a saber si es verdad o falsa. Se puede notar en este ejemplo:
-Mañana es miércoles o es jueves
-Mañana no es jueves
-Por lo tanto, mañana es miércoles
Como se puede observar las premisas no pueden ser verdaderas y la conclusión falsa, a menos que las premisas sean falsas entonces la conclusión podría ser falsa. En cambio si las premisas son verdaderas, su conclusión también lo es.



Proposiciones Atómicas:
·         Predictivas: son oraciones que tienen sujeto y un predicado.
·         Relacionales: estas relacionan dos o mas sujetos y pero aun así tienen un predicado




 Proposiciones Moleculares:
En la lógica de proposiciones una oración se transcribe de manera especial, cada proposición se representa con una letra según el alfabeto latino y se representa por letras: p,q,r,s,t y para reconocer si es verdad: (V) o falso: (F). Pero lo más importante de esta lógica son sus conectivas lógicas (Proposiciones Moleculares), que se usan para unir proposiciones y por lo tanto depende de ellas si son o no verdaderas o falsas las cuales son:
  • ·         Conjunción:
  • ·         Disyunción:
  • ·         Implicación: à
  • ·         Doble condicional: ßà
  • ·         Negación: ¬



Aplicación de la lógica proposicional

Una de las aplicaciones de la lógica proposicional se da en los sistemas de inteligencia artificial (IA).

¿Qué es?

En palabras sencillas, la inteligencia artificial trata de explicar el funcionamiento de la mente utilizando y desarrollo algoritmos para controlar distintas funciones. La inteligencia artificial combina varias áreas, por ejemplo la robótica, sistemas expertos, etc, los cuales comparten el mismo objetivo, el tratar de crear máquinas que puedan pensar o tomar decisiones por sí solas.

La idea principal de la inteligencia artificial es construir máquinas que sean capaces de realizar actividades que nosotros, los seres humanos, somos capaces de realizar.

La lógica proposicional es una parte muy importante en el desarrollo de la inteligencia artificial. Esto lo podemos observar en las siguientes afirmaciones:

·                     Un Agente Basado en Conocimiento (ABC) o que posee inteligencia para tomar decisiones posee conocimiento de su mundo y es capaz de razonar sobre las posibles acciones que puede tomar para cambiar el estado de su mundo tomando alguna decisión.
·                     El agente lo podemos observar como un conjunto de sentencias, que se representa mediante un lenguaje de representación de conocimiento.

Bibliografía: