Skip to content

Commit

Permalink
Documentacion agregada y poner en mayusculas el texto
Browse files Browse the repository at this point in the history
  • Loading branch information
Galindo-lab committed Jul 11, 2022
1 parent b431221 commit 44c4a6e
Show file tree
Hide file tree
Showing 4 changed files with 145 additions and 4 deletions.
2 changes: 0 additions & 2 deletions README.md

This file was deleted.

143 changes: 143 additions & 0 deletions README.org
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
#+TITLE: Algoritmo de Quine–McCluskey
#+AUTHOR: Luis E. Galindo Amaya

#+DESCRIPTION: Algoritmo de Quine–McCluskey para la calculadora fx-cg50

* Info
Implementacion del algoritmo de Quine–McCluskey para simplificar
funciones logicas pensado para funcionar en la calculadora
Casio fx-cg50.

https://es.wikipedia.org/wiki/Algoritmo_Quine–McCluskey

* Terminos
https://wikimedia.org/api/rest_v1/media/math/render/svg/8e9a983dd4d6aec3ed0d21a5a12ed52a56dc47004

- m :: activaciones, donde la funcion es 1
- d :: redundancias, deonde el valor es indiferente

* Documentacion
** Entrada de datos
*** Lista
Ingresas los valores de activacion separados por ','.

*** Tabla
La tabla acepta '1' y '-' cualquier otro valor será intepretado
como '0'.

* Interpretar el resultado
** Ingresar datos
Analicemos un ejemplo para entender los resultados del programa

#+BEGIN_SRC

---------------------
REDUCCION
DE FUNCION LOGICA
---------------------

1.LISTA // 2.TABLA?
1
NUMERO DE VARIABLES?
4
ACTIVACION?
4,8,10,11,12,15
REDUNDANCIAS?
9,14

#+END_SRC

** Terminos esenciales y no esenciales
los términos esenciales son los que contienen un mintermino único, un
mintermino que no aparece en otros terminos, por lo que
obligatoriamente sera parte de la funcion resultante.

los terminos no esenciales son los terminos cuyos terminos se repiten
en otro termino, en este caso el 8.

#+BEGIN_SRC
---------------------
RESULTADO
---------------------

ESENCIALES:
-100 (4, 12)
1-1- (10, 11, 14, 15)

NO ESENCIALES: [8]
10-- (8, 9, 10, 11)
1--0 (8, 10, 12, 14)

#+END_SRC

** Extrayendo la ecuacion
Ahora solo basta convertir el binario a nuestra ecuacion, como
tenemos dos teminos esenciales los pasamos directamente. Cada
digito correponde a el estado de una variable

- '1' :: es no negada
- '0' :: es negada
- '-' :: es inexistente

#+BEGIN_SRC

ABCD
-100 (4, 12)
| __
+-----> BCD

1-1- (10, 11, 14, 15)
|
+-----> AC

la ecuacion para los minterminos es:

[10, 11, 14, 15, 4, 12]
__
AC + BCD


Importante: los terminos [9,14] son
redundantes.

#+END_SRC

Nuestra funcion original pedía:
#+BEGIN_SRC

[4,8,10,11,12,15]

#+END_SRC

y nuestra funcion actualmente da
#+BEGIN_SRC

[4,10,11,12,15]

#+END_SRC

nos falta un termino, el temino faltante lo podemos
encontrar en los terminos 'NO ESENCIALES'

#+BEGIN_SRC
NO ESENCIALES: [8]
10-- (8, 9, 10, 11)
| _
+-----> AB

1--0 (8, 10, 12, 14)
| _
+-----> AD

#+END_SRC

ambos terminos contienen el numero '8' que nos falta
por lo que tenemos más de una posible solucion:

#+BEGIN_SRC
__ _
AC + BCD + AB
__ _
AC + BCD + AD

#+END_SRC
2 changes: 1 addition & 1 deletion quine-mccluskey-mini.py
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ def captura_tabla(variables):
elif foo=='1':activaciones.append(i)
print(A);return activaciones,redundancias
def x():
A='---------------------';print('');print(A);print(' REDUCCION ');print(' DE FUNCION LOGICA ');print(A);print('');entrada=captura_char('1.Lista // 2.Tabla');numero_variables=captura_entero('NUMERO DE VARIABLES')
A='---------------------';print('');print(A);print(' REDUCCION ');print(' DE FUNCION LOGICA ');print(A);print('');entrada=captura_char("1.LISTA // 2.TABLA");numero_variables=captura_entero('NUMERO DE VARIABLES')
if entrada=='2':print('');minterminos,redundancias=captura_tabla(numero_variables)
else:minterminos=captura_list('ACTIVACION');redundancias=captura_list('REDUNDANCIAS')
print('');duplicados(minterminos,redundancias);en_rango(numero_variables,minterminos,redundancias);print(minterminos);print(redundancias);print('');print(A);print(' RESULTADO ');print(A);print('');todos_los_terminos=minterminos+redundancias;primos=extraer_primos(numero_variables,todos_los_terminos);terminos_esenciales=esenciales(primos,minterminos);faltantes=terminos_faltantes(terminos_esenciales,minterminos);print('ESENCIALES:')
Expand Down
2 changes: 1 addition & 1 deletion quine-mccluskey.py
Original file line number Diff line number Diff line change
Expand Up @@ -412,7 +412,7 @@ def x():
print("---------------------")
print("")

entrada = captura_char("1.Lista // 2.Tabla")
entrada = captura_char("1.LISTA // 2.TABLA")

numero_variables = captura_entero("NUMERO DE VARIABLES")

Expand Down

0 comments on commit 44c4a6e

Please sign in to comment.