Raul E. Lopez Briega

Matemáticas, análisis de datos y python

Introducción al pensamiento lógico con Python

Introducción al pensamiento lógico con Python

"No, no estás pensando...solo estás siendo lógico"

Niels Bohr

Introducción

Cuando pensamos, estamos realizando un complejo proceso que se inicia con la creación de imágenes mentales en nuestro cerebro. Estas imágenes las integramos, emparejamos, proyectamos o asociamos con nuestros conceptos o esquemas mentales que representan nuestra realidad en un proceso simbólico que necesitamos estructurar en secuencias que sigan un orden racionalmente definido. Gracias a este proceso, podemos prever lo que sucederá, evaluar las consecuencias de nuestros actos; y anticiparnos para evitar episodios desfavorables. Naturalmente, al ser seres humanos, este proceso de pensamiento puede verse afectado por nuestras emociones y otros factores físicos o sociales que prejuzgan nuestra manera de representar las cosas. Una de las herramientas que tenemos para evitar errores en nuestro pensamiento es la lógica.

¿Qué es la Lógica?

Una de las principales herramientas que poseemos para intentar comprender la realidad que nos rodea es la lógica. Más formalmente la lógica es un arte en la ciencia de la comprensión o el razonamiento. Se trata de avanzar en nuestra comprensión de una manera ordenada y correcta y que nos brinde facilidad. Se centra en el estudio de los procedimientos válidos y no válidos de pensamiento, es decir, en procesos como la demostración, la inferencia o la deducción, así como en conceptos como las falacias, las paradojas y la verdad. El propósito de la lógica es guiar de manera precisa los pensamientos que, de no ser exactos, fallarían.

Lógica y argumentación

Los seres humanos tenemos la capacidad para establecer y verificar hechos, cambiar o justificar opiniones, y en general, dar sentido a las cosas. Hacemos esto a través de la razón; si bien todos somos capaces de razonar, alarmantemente solo un porcentaje pequeño de nosotros lo hace realmente bien.

La lógica es la ciencia que se usa para evaluar un argumento. Un argumento es un intento de persuadir a alguién de algo a través de darle razones para aceptar una conclusión dada. Utilizamos y escuchamos argumentos todos los días e incluso muchas veces sin darnos cuenta de ello. Si queremos reconocer un buen argumento de uno malo y ganar argumentaciones, entonces debemos dominar los mecanismos de la racionalidad pura, es decir, las leyes de la lógica.

Un argumento esta hecho de premisas y una conclusión. Las premisas suelen ser referidas también como razones o evidencias; en esencia, son simples proposiciones o declaraciones que se presentan para ser aceptadas como válidas. La conclusión no se más que la proposición final del argumento. Si el argumento es válido, las premisas implican la conclusión.

Lógica inductiva y deductiva

En general, usamos dos tipos de lógica, deductiva e inductiva. Las inferencias deductivas empiezan con un conocimiento general y predicen una observación específica; es decir que, en esta forma de razonamiento, la conclusión sigue necesariamente a las premisas. El ejemplo clásico es:

premisa 1:  Todos los humanos son mortales.
premisa 2:  Socrates es humano.
conclusión: Socrates es mortal.

Las inferencias inductivas hacen lo contrario. Comienzan con observaciones de una experiencia particular y llegan a conclusiones generales. En la inducción, la conclusión se basa simplemente en una probabilidad. El ejemplo clásico es:

premisa 1:  El sol ha salido todos los días hasta ahora.
conclusión: Por lo tanto, el sol saldrá mañana.

La solución de problemas demasiado complicados para ser resueltos por medio del sentido común se logra mediante largas series de inferencias mezcladas, tanto inductivas como deductivas, que se entrelazan entre la experiencia observada y se formalizan como el método científico. El propósito real del método científico es asegurarnos de que la Naturaleza no nos ha inducido a pensar que sabemos algo que en realidad ignoramos. Un solo desliz lógico y se derrumba todo un edificio científico.

Falacias

La importancia de conocer los mecanismos de la lógica radica en tratar de comprender si un argumento que alguien dice es lógicamente consistente; ya que si es inconsistente, implica que no deberíamos creer lo que esa persona nos dice. Lo más importante a tener en cuenta es la verdad de sus premisas; es decir, si éstas premisas se sustentan en evidencias y observaciones de la realidad.

Una falacia es un error de razonamiento que invalida un argumento. Una de las características básicas del pensamiento lógico es la capacidad para detectar errores en las conclusiones o en las premisas de un determinado argumento para poder evitar los razonamientos falaces, ya que éstos nos dificultan llegar a conocer la verdad de los hechos y nos hacen más susceptibles a la manipulación y la tergiversación. Las falacia son, en definitiva, afirmaciones sin fundamento que a menudo se proclaman con una convicción que las hace sonar como si fueran hechos probados. Basta dedicar cinco minutos a escuchar las noticias o a leer la sección de política para encontrar cientos de ejemplos de falacias! Veamos algunas de las más comunes:

  1. Falacia “ad hominem”: Los ataques personales son contrarios a los argumentos racionales. En lógica y retórica, un ataque personal se llama “ad hominem”, que en latín significa “contra el hombre”. En lugar de avanzar en un buen razonamiento, una falacia ad hominem reemplaza la argumentación lógica con un lenguaje ofensivo no relacionado con la verdad del asunto. (Muy común en la política argentina).

  2. Falacia de la apelación a la autoridad: Esta falacia argumentativa, también denominada “ad verecundiam”, ocurre cuando hacemos mal uso de una autoridad. Este mal uso de la autoridad puede ocurrir de varias maneras; por ejemplo: podemos citar solo a las autoridades, alejándonos convenientemente de otras pruebas comprobables y concretas como si la opinión de los expertos fuera siempre correcta; o podemos citar autoridades irrelevantes, autoridades pobres o autoridades falsas.

  3. Falacia populista: Esta falacia, también denominada argumento “ad populum”, supone que algo es cierto (o correcto o bueno) porque otras personas están de acuerdo con la persona que lo afirma; esto es, se acepta algo que se dice porque es popular.

  4. Falacia de la generalización apresurada: Una generalización apresurada es una declaración general sin evidencia suficiente para respaldarla. Ésta se produce a partir de la prisa por llegar a una conclusión, lo que lleva a la persona que argumenta a cometer algún tipo de suposición ilógica o a emitir estereotipos, conclusiones injustificadas o exageraciones.

  5. Falacia del falso dilema: Esta falacia argumentativa ocurre cuando fallamos al limitar las opciones a únicamente dos, cuando de hecho hay más opciones para elegir. A veces las opciones son entre una cosa, la otra, o ambas cosas juntas (no se excluyen entre sí). Y a veces hay una amplia gama de opciones.

Obviamente, esta es una muestra muy pequeña de las trampas en las que puede caer nuestro pensamiento. Hay cientos de ellas!

Juegos de lógica

A mí mamá le gustan las revistas de pasatiempos, esas revistas que traen cientos de juegos entre los que se incluyen sopas de letras, palabras cruzadas, autodefinidos, etc. Si bien ella tiene una habilidad increíble para resolver todos los juegos relacionados con palabras...siempre tuvo muuuchas dificultades con los del tipo Quién es Quién; en esos juegos, nos presentan un número de afirmaciones y en base a ellas debemos aplicar lógica deductiva para obtener la información faltante. Aquí va un ejemplo:

Tenemos la siguiente información sobre cuatro personas:

  • Esteban tiene un auto azul
  • La persona que tiene un gato vive en España. Matías vive en Argentina
  • La persona con el auto negro vive en Brasil.
  • Juan tiene un gato.
  • Alex vive en Brasil
  • La persona que tiene un perro vive en Colombia.
  • ¿Quién tiene un conejo?

El objetivo entonces es, a partir de estas afirmaciones, deducir quién es el dueño del conejo.

Aquellos lo suficientemente valientes para intentar resolver el enigma con sus propios medios, pueden dejar de leer y recurrir al viejo método de papel y lápiz para arribar a la solución...los que prefieren aplicar la ley del menor esfuerzo (como es mi caso) pueden continuar leyendo para ver como con la ayuda de Python y la librería kanren, una librería que nos ayuda a implementar el paradigma de la programación lógica; podemos resolver este enigma lógico y encontrar su solución.

In [1]:
Ver Código
In [2]:
# Enigma de Lógica
# Declaro la variable gente
gente = var()
In [3]:
# Defino las reglas
reglas = lall(
    # hay 4 personas
    (eq, (var(), var(), var(), var()), gente),
    # Esteban tiene un auto azul
    (membero, ('Esteban', var(), 'azul', var()), gente),
    # La persona que tiene un gato vive en España.
    (membero, (var(), 'gato', var(), 'España'), gente),
    # Matías vive en Argentina
    (membero, ('Matías', var(), var(), 'Argentina'), gente),
    # La persona con el auto negro vive en Brasil.
    (membero, (var(), var(), 'Negro', 'Brasil'), gente),
    # Juan tiene un gato.
    (membero, ('Juan', 'gato', var(), var()), gente),
    # Alex vive en Brasil
    (membero, ('Alex', var(), var(), 'Brasil'), gente),
    # La persona que tiene un perro vive en Colombia.
    (membero, (var(), 'perro', var(), 'Colombia'), gente),
    # ¿Quién tiene un conejo?
    (membero, (var(), 'conejo', var(), var()), gente)
)
In [4]:
# Ejecuto la solución
soluciones = run(0, gente, reglas)
In [5]:
# Extraigo la respuesta
dueño = [nombre for nombre in soluciones[0] if 'conejo' in nombre][0][0]
In [6]:
# Imprimo los resultados.
print('\n' + dueño + ' es el dueño del conejo')
print('\n Detalle del enigma:')
atributos = ['Nombre', 'Mascota', 'Color de auto', 'País']
print('\n' + '\t\t'.join(atributos))
print('=' * 60)
for item in soluciones[0]:
    print('')
    print('\t\t'.join([str(x) for x in item]))
Matías es el dueño del conejo

 Detalle del enigma:

Nombre		Mascota		Color de auto		País
============================================================

Esteban		perro		azul		Colombia

Juan		gato		~_9		España

Matías		conejo		~_11		Argentina

Alex		~_13		Negro		Brasil

Como podemos ver en el detalle del enigma, con la información proporcionada todavía hay datos que no podemos deducir, pero a pesar de la información incompleta, el programa sí pudo deducir la pregunta que estábamos buscando. Matías, que vive en Argentina, es el dueño del conejo.

Aquí finaliza este artículo. Si bien la lógica es una herramienta muy útil dentro de la compleja maquinaria de nuestro pensamiento, y nos ayuda a pensar con más claridad y menos errores; no por ello debemos confiar ciegamente en ella y dejar de seguir nuestros instintos. Obviamente este artículo va dedicado a una de las personas que más amo en el mundo, mi mamá! y su constante lucha con los juegos de lógica. Tal vez con algún día los pueda resolver... 😆

Saludos!

Este post fue escrito por Raúl e. López Briega utilizando Jupyter notebook. Pueden descargar este notebook o ver su version estática en nbviewer.

Este articulo fue escrito utilizando Jupyter notebook. Presionar aquí para la versión interactiva: Binder badge

Comments