El IF-THEN-ELSE es una estructura que utilizamos en programación para establecer condiciones. En esencia, le decimos a la máquina: "Si (IF) ocurre esto, entonces (THEN) haz esto; de lo contrario (ELSE), haz aquello". Se trata de una construcción fundamental en la programación, pues permite tomar decisiones basadas en el cumplimiento de condiciones específicas.
Veamos un ejemplo simple para entender su funcionamiento:
if temperatura > 30:
print("Hace calor")
else:
print("No hace calor")
En este ejemplo, el programa evalúa si la temperatura es mayor que 30 grados Celsius. Si la condición es verdadera, imprimirá "Hace calor"; de lo contrario, imprimirá "No hace calor".
Parece sencillo, pero sin la estructura IF-THEN-ELSE, la capacidad de los programas para adaptarse y tomar decisiones sería extremadamente limitada… y quizá la inteligencia artificial nunca hubiera dado sus primeros pasos.
El origen de IF-THEN-ELSE
Uno de los primeros lenguajes que implementó esta estructura fue el lenguaje Fortran, desarrollado en la década de 1950. Fortran permitió a los programadores escribir programas que tomaran decisiones basadas en condiciones, lo que marcó un hito importante en la evolución de la programación.
Así, Fortran, generalizó la lógica detrás de la fórmula que nos ocupa al especificar saltos a tres ubicaciones según si un cálculo era negativo, cero o positivo. Sin embargo, esto aún se expresaba únicamente con un "if" dotado de una sintaxis algo compleja:
En 1958, dos organizaciones estadounidenses y alemanas comenzaron un proyecto conjunto para desarrollar un lenguaje de programación estándar e independiente de la máquina. Cada grupo aportó una propuesta, y aquí se dio un giro importante en la historia del "if". La propuesta alemana presentó dos avances conceptuales significativos:
- Primero, permitió que la condición fuera controlada por cualquier expresión booleana, no solo por comparaciones.
- Segundo, en lugar de un salto abrupto, su "if" desviaba temporalmente el flujo de control y luego continuaba al final del bloque, ejecutando o no las instrucciones subsiguientes.
Curiosamente, fue esta propuesta alemana, no la estadounidense, la que introdujo el uso de 'else'. Cuando ambas propuestas se fusionaron en el International Algebraic Language, luego renombrado como 'Algol', no hay ni rastro del término… que no se recuperaría hasta la versión Algol 60.
A pesar de su aceptación generalizada, algunos expertos en computación como Christopher Strachey rechazaron el uso de "else", considerándolo incorrecto en inglés (hay todo un debate al respecto entre anglohablantes). Propuso la construcción "test... then... or", que no ganó popularidad.
Papel de IF-THEN-ELSE en el surgimiento de la IA
La estructura IF-THEN-ELSE desempeñó un papel crucial en el surgimiento de la inteligencia artificial (IA). En las etapas iniciales de la IA, las máquinas se programaban utilizando reglas lógicas basadas en IF-THEN-ELSE para simular el razonamiento humano. Estos sistemas basados en reglas se conocen como 'sistemas de conocimiento experto'.
Un ejemplo clásico de aplicación de la estructura IF-THEN-ELSE en la IA es el programa "Eliza" —el primer chatbot de la historia— desarrollado en la década de 1960 por Joseph Weizenbaum. Eliza era un programa que simulaba una conversación con un terapeuta, utilizando masivamente reglas basadas en IF-THEN-ELSE para responder a las entradas de los usuarios.
Aunque la conversación de Eliza era limitada y predecible —a años luz de lo que hoy ofrece ChatGPT—, marcó un paso importante en la exploración de la interacción humano-máquina y sentó las bases para futuros desarrollos en el campo de la IA.
La transición
Pero la IA no saltó directamente del útil pero sencillo IF-THEN-ELSE al deep learning… ni tampoco se quedó congelada en el uso del mismo, claro, pese a lo que sugiera el popular, pero equivocado, meme que usamos en la imagen que encabeza este artículo.
Fue un proceso evolutivo en el que primero se pasó al uso de métodos como la "regresión lineal" (en el análisis de crédito, por ejemplo, se puede usar para determinar la probabilidad de que un individuo incumpla un préstamo)…
…luego se basó en el uso de los "árboles de decisión", un algoritmo de aprendizaje automático que se utiliza en la ciencia de datos para procesar grandes volúmenes datos basándose en una serie de condiciones jerárquicas.
Hoy en día: redes neuronales y deep learning
Luego llegarían, por fin, las redes neuronales, capaces de aprender características complejas automáticamente a partir de los datos. Sin embargo, estos primeros programas de IA basados en IF-THEN-ELSE y los enfoques actuales de IA basada en deep learning difieren significativamente en varios campos:
1. Representación del conocimiento
En los primeros programas de IA basados en IF-THEN-ELSE, el conocimiento se representaba explícitamente en forma de reglas lógicas codificadas por programadores. Estos sistemas se basaban en la captura de conocimiento humano en forma de reglas y hechos específicos.
En contraste, el deep learning se basa en la representación del conocimiento a través de redes neuronales artificiales. En lugar de codificar reglas explícitas, las redes neuronales aprenden automáticamente a partir de datos.
Utilizan capas de nodos interconectados para extraer características y patrones complejos de grandes conjuntos de datos, lo que les permite reconocer patrones, comprender el lenguaje natural y realizar tareas complejas.
2. Capacidad de adaptación
Los sistemas de conocimiento experto basados en IF-THEN-ELSE eran limitados en su capacidad de adaptación. Su conocimiento estaba contenido en las reglas programadas, y cualquier cambio en el conocimiento requería una actualización manual de las reglas. El deep learning, sin embargo, puede aprender de manera continua a medida que se le proporcionan más datos.
3. Escalabilidad y complejidad
Los sistemas de conocimiento experto basados en IF-THEN-ELSE a menudo eran complejos y requerían una programación intensiva para cubrir una amplia gama de situaciones. Su escalabilidad era limitada, ya que agregar nuevas reglas podía volverlos más difíciles de mantener. El deep learning, en cambio, es altamente escalable y puede manejar conjuntos de datos enormes y problemas complejos de manera eficiente.
4. Generalización
Los primeros programas de IA basados en IF-THEN-ELSE a menudo carecían de la capacidad de generalización. Funcionaban bien en situaciones para las que se habían programado explícitamente, pero tenían dificultades para lidiar con escenarios no previstos. El deep learning, por el contrario, es capaz de generalizar el conocimiento a partir de ejemplos y aplicarlo a situaciones nuevas.
Imagen | Meme extraído de redes sociales + Imagen de Marcos Merino mediante IA