Supermercadillo :3

Introducción
Bienvenido(a) a mi blog, en esta ocasión te mostraré la resolución de una situación a través de una función lógica.
Comenzaremos por explicar los conceptos básicos a los que se engloba cuando hablamos de una función lógica
Primeramente, comenzaremos por explicar qué es un sistema de la forma más sencilla que podamos.
Un sistema se puede definir como un equipo de componentes que trabajan conjuntamente para poder llevar a cabo una función específica, obtener un resultado a partir de datos que ingresamos de manera manual o automática.
La situación que vamos a resolver es parte de un sistema así que prepárate para ver el resultado de el estrés de un estudiante, litros de café y dos días seguidos sin dormir son capaces de hacer en conjunto.

Planteamiento del problema
Un gerente de supermercado se le encargó la tarea de enviar mercancía a otros supermercados, para esto cuenta con dos camiones, uno que tiene un sistema de refrigeración que llamaremos “camión frío” y otro que no cuenta con ningún sistema de refrigeración al cual llamaremos “camión tibio” los productos que debe transportar son los siguientes:
-          Manzanas
-          Zanahorias
-          Carne
-          Pan de caja
Sus conductores son bien mamilas y tienen normas específicas para poder llevar sus productos…El conductor del camión frío es un UNICO que puede llevar carne en su camión, pero debe llevarla sola o junto con pan, también puede llevar manzanas, pero UNICAMENTE acompañadas por zanahorias. El conductor del camión tibio no puede llevar carne. Está dispuesto a llevar frutas y verduras siempre y cuando alguna de estas dos esté acompañada de pan de caja obligatoriamente.
Sabiendo las condiciones de sus conductores y con miedo de perder su trabajo y por morir de un ataque de estrés, necesita un sistema que le diga qué conductor puede llevarse sus productos con únicamente ingresar los datos de los productos que tiene para enviar.

Ahora sí, te mostraremos los conceptos básicos que debes conocer a la hora de resolver este tipo de situaciones y sobre la marcha iremos mostrando la solución de esta situación.


Caja negra
Una caja negra en sistemas es una representación (generalmente gráfica) la cual tiene como principal objetivo entender a grandes rasgos las entradas que tiene un sistema, junto con sus correspondientes salidas SIN enfocarnos aún en su funcionamiento especifico. Se le llama caja negra debido a que lo único que media entre las entradas y las salidas es una caja negra que representa los componentes que en conjunto hacen que nuestro sistema funcione.
En el caso específico de nuestro problema usaremos su caja negra para tratar de que quede más claro.




Las flechas verdes a la izquierda simbolizan las entradas que tenemos en nuestro sistema, las flechas azules del lado derecho simbolizan las salidas del mismo. El cubo de color negro es nuestra caja, la cual representa todos los elementos y procesos que necesitan llevar a cabo para que resulten en nuestras dos salidas (recordemos que las salidas son las flechas de color azul).

Entradas y salidas
-Entrada
Una entrada se puede definir como la captura de los datos de un planteamiento (en este caso) los cuales serán nuestro preámbulo o nuestra “materia prima” para pasarlo por nuestra serie de componentes para así poder obtener nuestro resultado, las “salidas”.
-Salida
La salida se entiende como la información que metimos/ pasamos previamente por nuestra caja negra o nuestro procesador una vez “digerida”. Es la información ya procesada por los componentes de todo nuestro sistema.
Una vez aprendimos a identificar y comprendemos de forma parcial lo que es una entrada y una salida podemos comenzar a resolver nuestra situación.
Para empezar, debemos identificar la caja negra de nuestra situación, la cual recordemos que es la siguiente:




Identificamos las entradas las cuales son los diversos productos que nuestro gerente tiene que enviar a otras sucursales, los cuales son:
-          Zanahorias
-          Carne
-          Manzanas
-          Pan de caja
Las salidas corresponden a los camiones que tenemos a nuestra disposición para poder enviar los productos a las diversas sucursales.
Además de nuestras salidas podemos identificar algunas condiciones que nuestros conductores tienen para poder llevar los productos de una tienda a otra ¡Recordémoslas ¡
“El conductor del camión frío sólo puede llevar zanahorias con manzanas, y la carne roja debe llevarla sin ningún otro producto, el único producto con el que puede llevar carne es con pan de caja”
“El conductor del camión tibio está dispuesto a llevar frutas, verduras y carne, siempre y cuando alguno de estos tres productos vayan acompañados de pan de caja obligatoriamente”

Tabla de verdad
Una tabla de verdad fundamentalmente es un dispositivo el cual nos ayuda a demostrar propiedades lógicas y semánticas de enunciados del lenguaje natural o de formulas del lenguaje de cálculo.
En el caso de nuestra situación la tabla de verdad correspondiente es la siguiente:
Zanahorias
Carne
Manzanas
Pan de caja
Camión tibio
Camión frío
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1

Rellenar una tabla de verdad es bastante sencillo, permíteme enseñarte.
A la hora de analizar nuestro planteamiento una vez que determinamos nuestras entradas debemos realizar la siguiente operación:
2^n: 2^4
La operación anterior se lee como “Dos elevado a la n, es igual a dos elevado a la cuarta” en donde “n” representa nuestro número de entradas o “variables”
En nuestro caso debemos elevarlo a cuatro, ya que tenemos 4 entradas o 4 variables, pero ese número que representa la letra n debe de concordar con el número de entradas que puede tener.
Una vez dejamos claro esto, entonces ya deducimos que 2^n = 2^4 = 16 lo que queremos obtener con esto, es el número de combinaciones de 4 bits que debemos colocar en nuestra tabla de verdad para poder aplicar nuestra situación.
Las combinaciones de ceros y unos que viste debajo de las entradas (manzanas, carne, pan y zanahorias) en la anterior tabla de verdad que te mostramos (las que se muestran en color azul claro)
Zanahorias
Carne
Manzanas
Pan de caja
0
0
0
0
0
0
0
1
0
0
1
0
0
0
1
1
0
1
0
0
0
1
0
1
0
1
1
0
0
1
1
1
1
0
0
0
1
0
0
1
1
0
1
0
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1

Una forma fácil de obtener los valores de la tabla es recurrir al número 16 (recordemos que es el resultado de nuestra operación 2^n) traduciendo números decimales en el orden que conocemos, al lenguaje binario, permíteme mostrarte.
El número cero en el sistema decimal se representa como siempre lo has hecho
0
Pero en el sistema binario que a nosotros nos interesa, ósea que se componga de 4 bits ¿a qué nos referimos con esto de “4 bits”? pues a que se componga de 4 números del sistema binario (recordemos que el sistema binario maneja como únicos números el 0 y el 1) el número cero se representa de la siguiente forma.
0000
Ahora debemos acomodar esos 4 bits en nuestra tabla de verdad (no importa en qué fila los pongas, siempre y cuando se mantengan en la misma fila y con el orden correcto) quedándonos de esta manera
Zanahorias
Carne
Manzanas
Pan de caja
0
0
0
0

¿Ahora entiendes por qué es tan importante identificar de forma correcta las entradas que tenemos en nuestra situación?
Yo en lo personal te recomiendo que rellenes la tabla con el orden del sistema decimal, traduciendo los números al sistema binario de 4 bits. Así:
-          0 = 0000
-          1 = 0001
-          2 = 0010
-          Hasta llegar al número 16
Y de esta forma podemos ir llenando nuestra tabla de verdad en orden y sin confundirnos
Ahora…¿Qué significa esta parte de nuestra tabla de verdad?
Camión tibio
Camión frío
0
0
1
1
0
0
1
0
0
0
0
1
0
0
0
0
0
1
1
1
0
1
1
1
0
0
0
1
0
0
0
1

Bueno pues esta parte de la tabla no representa nada más ni nada menos que nuestros resultados, los 1 representan las situaciones en las que cada conductor SÍ puede llevar la mercancía, estos valores los obtenemos siguiendo el planteamiento de nuestro problema, o sea las condiciones que debemos cumplir para que nuestros conductores puedan llevarse nuestros productos
“El conductor del camión frío es un UNICO que puede llevar carne en su camión, pero debe llevarla sola o junto con pan, también puede llevar manzanas, pero UNICAMENTE acompañadas por zanahorias”
“El conductor del camión tibio no puede llevar carne, está dispuesto a llevar frutas y verduras siempre y cuando alguna de estas dos esté acompañada de pan de caja obligatoriamente.”
Estas son nuestras premisas, ahora debemos hacer una columna para cada conductor y debemos poner en práctica las condiciones que cada uno de nuestros conductores maneja.
Para obtener los valores de cada conductor es tan fácil como leer sus condiciones y comprarlo con nuestros valores que colocamos en orden decimal anteriormente, por ejemplo:

Zanahorias
Carne
Manzanas
Pan de caja
Camión tibio
Camión frío
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0

Tomemos la segunda fila de nuestros valores binarios de 4 bits y apliquemos las condiciones de cada conductor:

Zanahorias
Carne
Manzanas
Pan de caja
Camión tibio
Camión frío
0
0
0
1
1
1

Para empezar, debemos saber leer los valores
1 = Hay este producto
0 = NO hay este producto
Entonces esa fila (la parte de los valores binarios de color azul claro) se lee como:
“No hay zanahorias, no hay carne, no hay manzanas, solo tenemos pan de caja”
Ahora debemos ver si alguno de nuestros conductores puede llevarse nuestro único producto que nos llegó, que es pan de caja.
“El conductor del camión frío es un UNICO que puede llevar carne en su camión, pero debe llevarla sola o junto con pan, también puede llevar manzanas, pero UNICAMENTE acompañadas por zanahorias”
Vemos que nuestro conductor no tiene problema por llevar pan SOLAMENTE
Entonces debemos colocar un número 1 en su columna ya que SÍ puede llevar el producto sin problemas.
Ahora veamos con nuestro otro conductor…
“El conductor del camión tibio no puede llevar carne. Está dispuesto a llevar frutas y verduras siempre y cuando alguna de estas dos esté acompañada de pan de caja obligatoriamente.”
Nuestro otro conductor tampoco tiene ningún inconveniente con llevar pan de caja UNICAMENTE
Entonces en su columna colocamos un número 1 también, ya que SÍ puede llevar el producto.
Pero recuerda que ellos tienen condiciones diferentes, entonces no siempre van a concordar con sus respuestas, por ejemplo, usemos otros valores.
Zanahorias
Carne
Manzanas
Pan de caja
Camión tibio
Camión frío
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0

Recordemos cómo se leen los valores de nuestras variables…
“no tenemos zanahorias ni carne, solo tenemos manzanas y pan de caja”
Ahora veamos quién puede llevarse nuestros productos sin hacernos caras…
“El conductor del camión frío es un UNICO que puede llevar carne en su camión, pero debe llevarla sola o junto con pan, también puede llevar manzanas, pero UNICAMENTE acompañadas por zanahorias”
Aquí podemos ver que nuestro conductor no puede llevarse nuestros productos ya que solamente puede llevar manzanas en compañía de zanahorias, y no tenemos zanahorias, solo manzanas y pan de caja, entonces debemos colocar un cero en su columna ya que NO puede llevarse la mercancía.
Veamos con el otro conductor
“El conductor del camión tibio no puede llevar carne. Está dispuesto a llevar frutas y verduras siempre y cuando alguna de estas dos esté acompañada de pan de caja obligatoriamente.”
Nuestro otro conductor SÍ puede llevar nuestra mercancía ya que son frutas que van acompañadas de pan de caja, entonces en su columna colocamos un número 1, ya que SÍ puede llevarse la mercancía.
Siguiendo teniendo presentes las situaciones de cada conductor debemos llenar toda nuestra tabla de verdad, hasta que quede llena nuestra tabla.

Función lógica
Una función lógica es una serie de representaciones que hacen que nuestro sistema responda a diversos estímulos por parte de sus entradas para así arrojar un resultado. En pocas palabras es lo que hace que nuestro sistema funciones, es la esencia de una situación representada con literales que a su vez son variables
Para obtener las funciones de nuestra situación debemos recurrir a nuestra tabla de verdad, dejemos claro que necesitamos dos funciones distintas, una para cada conductor, que representa una salida.
Para sacar una función de una tabla de verdad, debemos enfocarnos únicamente en las filas en donde nuestra salida es uno. Así.
Zanahorias
Carne
Manzanas
Pan de caja
Camión tibio
Camión frío
0
0
0
0
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
1
1
0
0
1
0
0
0
0
0
1
0
1
0
1
0
1
1
0
0
0
0
1
1
1
0
0
1
0
0
0
0
1
1
0
0
1
1
1
1
0
1
0
0
1
1
0
1
1
1
1
1
1
0
0
0
0
1
1
0
1
0
1
1
1
1
0
0
0
1
1
1
1
0
1

En esta ocasión haremos una función por cada salida, tendremos dos funciones activas en nuestro sistema, permíteme enseñarte cómo hacerlo
En nuestra tabla de verdad hay una relación entre nuestros productos y el valor binario que le asignamos en diferentes ocasiones, tomaremos el primer valor resaltado con color amarillo, el cual es:
Zanahorias (z) = 0
Carne (c)= 0
Manzanas (m) = 0
Pan de caja (p) = 1
En este caso haremos dos ejemplos, uno para cada camión (salida)
Una letra representa un valor de 1 en su forma natural, pero para poder hacer que una variable, por consecuente, su literal valga cero, necesitamos usar un signo para distinguir que una letra está “negada” y por ende, representa un cero.
Z=0 
C=0 
M=0 
P=1
Entonces el primer mini termino de nuestra función para el camión tibio es:
ZCMP (recuerda que las letras rojas significan que es una letra negada y por ende su valor es cero
Hagamos otro y sumémoslo al anterior.
Z=0 C=0 M=1 P=1
Nuestro mini termino queda como:
ZCMP
Y sumando los términos quedan así:
ZCMP+ZCMP
Y así es como debemos ir desarrollando nuestros mini términos para obtener la función lógica de nuestra tabla de verdad, para cada conductor quedándonos al final como:
Para el camión tibio:
ZCMP + ZCMP + ZCMP + ZCMP
Para el camión frío:
ZCMP+ ZCMP+ ZCMP + ZCMP + ZCMP + ZCMP + ZCMP + ZCMP
  
Reducciones
Para poder reducir una función lógica debemos conocer algunos postulados del algebra de Boole, pero en este caso sólo vamos a enfocarnos en uno en específico el cual es:
A + A = 1
Mantén ese postulado en mente, lo vas a ocupar.
Empezaremos por reducir la función más corta:
ZCMP + ZCMP + ZCMP + ZCMP
Para poder reducir debemos ver dos términos que tengan tres términos iguales pero uno diferente, pero el que es de valor distinto, debe tener la misma literal:
ZCMP + ZCMP + ZCMP + ZCMP
En este caso podemos ver que estos dos términos tienen Z negada, C negada y P normal, pero en la literal M uno la tiene negada y otro la tiene normal, entonces esos dos mini términos se pueden expresar como:
ZCP(M+M)
¿Y recuerdas el postulado de Boole? Vamos a aplicarlo aquí
ZCP(1) = ZCP
Entonces reducimos dos términos a uno solo, y así lo haremos con otro
ZCP + ZCMP + ZCMP
Ahora tomaremos esos dos términos y les haremos lo mismo:
ZCP(M+M) = ZCP(1) = ZCP
Entonces nuestras funciones ya reducidas nos quedan como:
Camión tibio: ZCP + ZCP
Camión frío: ZC + ZCP + ZM
Podríamos reducirlas más, pero va a parecer que no hicimos nada, entonces dejémoslas así.

Tabla de verdad a partir de las funciones reducidas
Ahora tenemos que comprobar que nuestras reducciones son correctas utilizando la tabla de verdad, para esto utilizaremos una fila en donde los dos valores de los camiones sean 1.
Zanahorias
Carne
Manzanas
Pan de caja
Camión tibio
Camión frío
0
0
0
0
0
0
0
0
0
1
1
1

Para esto necesitamos conocer las operaciones básicas con números binarios, eso lo abordaremos en otra ocasión. Vamos a comprobar nuestras funciones…
Primero el camión tibio, recordemos que su función reducida es:
ZCP + ZCP
Entonces vamos a introducir los valores correspondientes en el primer mini termino:
ZCP
Recordemos que las letras rojas simbolizan una negación, entonces el termino que coloquemos ahí, debe ser contrario, veamos:
Según nuestra tabla de verdad, Z vale cero, pero en nuestra función reducida tenemos que Z está negada, por lo tanto, vamos a negra al 0, por ende, debemos meter un 1, quedando así el mini termino:
111
Ahora hacemos lo mismo con el otro mini termino quedando la suma así:
111 + 011
Ahora recuerda que cuando se trata de números binarios debemos tener un solo número apara saber si nuestro conductor puede o no puede llevar nuestros productos. Vamos a multiplicar los tres números que representan los mini términos.
1*1*1= 1
0*1*1= 0
Entonces nuestros valores quedan así:
1+0 = 1
Esto es igual a 1, por lo tanto, nuestro conductor puede llevar la mercancía que tenemos, podemos verificarlo en nuestra tabla de verdad.

Zanahorias
Carne
Manzanas
Pan de caja
Camión tibio
0
0
0
0
0
0
0
0
1
1

Ahora haremos lo mismo con nuestra función del camión frío:
ZC + ZCP + ZMP
01 + 001 + 111
0 + 0 + 1 = 1
Ahora podemos comprobar que el valor es el correcto en nuestra tabla de verdad.

Zanahorias
Carne
Manzanas
Pan de caja
Camión tibio
Camión frío
0
0
0
0
0
0
0
0
0
1
1
1


Una vez explicado esto, podemos diagramar nuestro circuito lógico en el programa de tu preferencia (en mi caso utilizaré Multimedia Logic) quedando de esta forma:

En este caso las funciones están sin reducir (es un completo desorden)


En este diagrama las funciones ya están reducidas, no sean flojos y reduzcan chicos(as) porque se están ahorrando trabajo a la hora de diagramar.

Conclusiones
En conclusión, podemos decir que las funciones lógicas son muy útiles para resolver situaciones de la vida diaria que de otra forma serían bastantes más difíciles.
El poder expresar situaciones con elementos matemáticos es bastante más sencillo que utilizar únicamente texto, a mi parecer un complemento perfecto entre el lenguaje y los elementos y procesos matemáticos.
Sin más por el momento, no me queda más que agradecer la dedicación y la inversión de tu tiempo al leer todo el documento, espero sea claro y te ayude a comprender los procesos de los circuitos lógicos a través de funciones y el álgebra.

Bibliografía



-Mi cerebrito y mis apuntes. :b

Comentarios