COMO PROGRAMAR UN SISTEMA EVOLUTIVO
Noviembre 2001

La mayoría de los programas que realizamos a diario en las escuelas y empresas son de tipo estructurado. Un programa estructurado debe seguir una secuencia fija de instrucciones y esta última no se puede alterar durante su ejecución o cuando el procesador lo está trabajando. Pero ahora nos preguntamos, ¿Se podrá generar un programa que no siga una secuencia preestablecida?, es decir ¿Un programa puede alterarse a sí mismo en tiempo de ejecución?. La respuesta es sí y es este un sistema evolutivo. Pero, ¿para que hacer que un programa se modifique a sí mismo? pues principalmente por una razón: evitar ser obsoleto (adaptación al medio)

Veamos un ejemplo de donde aplicarlo.

Vamos a suponer que necesitamos implementar un sistema médico capaz de hacer llamadas telefónicas para invitar a los pacientes a un chequeo semestral. El sistema cuenta con una agenda de teléfonos y la última fecha en que se asistió a consulta y mas o menos trabaja así.

1. Tomar un paciente de la agenda
2. Revisar su última fecha de asistencia
3. ¿Han pasado seis meses desde la última cita?

4. Si la respuesta es sí continuar, si la repuesta es no regresar al paso 1.

5. Hacer llamada telefónica

Este programa parece bueno, pero, ¿que pasa si el paciente ya cambió de doctor desde hace un año y no avisó a su antiguo doctor?. En tal caso el sistema hará varias llamadas al paciente para invitarlo a su chequeo general lo cual puede resultar molesto. Tal parece que el sistema necesita algunos ajustes.

Que pasa si ahora mandamos revisar primero el número de llamadas de alerta que se han hecho. Esta vez el sistema también tendrá un contador de llamadas de alerta.

1. Tomar un paciente de la agenda
2. Revisar su última fecha de asistencia
3. ¿Han pasado seis meses desde la última cita?
4. Si la respuesta es sí continuar, si la repuesta es no regresar al paso 1.
5. ¿Tiene llamadas previas?
6. Si la respuesta es sí, continuar, si la respuesta es no, regresar al paso 1
7. ¿Se ha excedido el limite de llamadas previas?
8. Si la respuesta es sí, continuar, si la respuesta es no, se elimina al paciente de la agenda y se regresa al paso 1
9. Hacer llamada telefónica

De esta forma el sistema está alterando automáticamente los datos que tiene para su ejecución. Así, que este es un ejemplo de programación de un sistema evolutivo capaz de modificar su base de conocimiento.

Recordemos que un sistema evolutivo debe ser capaz de modificar sus datos, estructura de su propio programa y/o las reglas bajo las que realiza su función.

Hosted by www.Geocities.ws

1