Foros del Web » Programando para Internet » Python »

arrays de funciones en python

Estas en el tema de arrays de funciones en python en el foro de Python en Foros del Web. Estoy empezando con Python y a lo mejor la respuesta a esta duda está en algún rincón del manual. Bueno ahí va... Intento construir un ...
  #1 (permalink)  
Antiguo 28/07/2012, 00:30
 
Fecha de Ingreso: julio-2012
Ubicación: Zaragoza
Mensajes: 4
Antigüedad: 12 años, 4 meses
Puntos: 0
arrays de funciones en python

Estoy empezando con Python y a lo mejor la respuesta a esta duda está en algún rincón del manual. Bueno ahí va...
Intento construir un pequeño sistema compuesto por autómatas que deben enfrentarse a situaciones diferentes: obstáculos, situaciones de conflicto con otros autómatas y para ello deben aplicar unas reglas comunes usando un conjunto de funciones tambien común.
¿Cual es la particularidad del proceso ?..
Cada autómata enfrentado al problema de sobrevivir, deberá evaluar cual es la colección de funciones que mejor se ajustan a sus características, al principio evalúa todas pero poco a poco solo adopta aquellas que le han sido más útiles y por ello las ido incorporando dentro de su array particular (De ahí mi interés por este asunto), esta cadena de punteros a funciones es como un ADN que transmite a sus descendientes. Las funciones ascienden en el orden de evaluación a medida que se adaptan mejor al bicho. Espero que me haya explicado correctamente.

Gracias
  #2 (permalink)  
Antiguo 28/07/2012, 08:39
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: arrays de funciones en python

Mas o menos se entendió lo que quieres hacer, lo que tu quieres hacer se llama un algoritmo genético.

Pero no entendi ¿cual es la pregunta, tener el arreglo de funciones? En mi opinión puedes simplificar esto si trabajas con POO (Programación Orientada a Objetos).

Aquí hay un ejemplo simple de un algoritmo genético en python.
  #3 (permalink)  
Antiguo 28/07/2012, 12:11
 
Fecha de Ingreso: julio-2012
Ubicación: Zaragoza
Mensajes: 4
Antigüedad: 12 años, 4 meses
Puntos: 0
Pregunta Respuesta: arrays de funciones en python

Estimado usuario. En primer lugar quiero agradecer tu ayuda sobre todo porque he descubierto -gracias al link que me has enviado- un lugar donde aprender estudiando los programas de otros.

Ruego que disculpes mi escasa capacidad para formular una pregunta en este ambiente de programadores.

Bien... porqué -me preguntas - usar un array y no las ventajas de la programación orientada a objetos?
El motivo no es conseguir gestionar objetos estáticos en entornos aleatorios sino objetos aleatorios en entornos no aleatorios.

En mi opinion la aleatoriedad no existe mas allá del "randomize" y solo ocurre que los objetos interactúan y evolucionan y el lugar donde esto ocurre no es otro objeto mas del que solo vemos una parte en una orientación concreta.

Bueno mi planteamiento es el siguiente: cada objeto-automata consta de un motor que analiza su objetivo inmediato (servir para el uso que se requiere).
En cada momento y en función de su situación y de sus caracteristicas especiales recurre a una bibliteca de funciones localizada en un punto común para el resto de los objetos que conviven en ese espacio.
Esas funciones son accesibles por el programador.
Al principio, el objeto es tonto, es decir, escanea todas las funciones haciendo a cada una la pregunta para la que busca, por ejemplo me muevo por un canal en una dirección y encuentro un obstaculo... ¿que hago? como mi array motriz (memoria) está vacío recorro toda la lista y entrego como argumento el evento encontrado, todas las funciones admiten como entrada el argumento pero solo entregan respuesta si su funcionalidad lo permite de lo contrario me devolverán -1.
Ahora viene el asunto verdaderamente difícil de imaginar -para mi- en programación:
Si esa función me devuelve un argumento útil a la pregunta realizada, querría que en mi tabla motriz se situara esa función sopesando las veces que me resulta útil es decir... muy útil al principio, poco útil al final o fuera de ella.

De manera que, a medida que mi objeto funciona y resuelve la funcionalidad en su entorno acumula esta en arrays de señaladores a funciones situadas en la tabla general.

Es otra forma de ver un algoritmo genético ya que cada elemento acumula su experiencia en una memoria de arrays fija p.e. : motricidad, reloj interno, sentidos de exploración de entorno etc. En esa memoria solo hay punteros a funciones dentro de una localización general.

En caso de reproducción, el elemento podría transferir parte del bagaje acumulado en esos arrays a su descendencia.

Quiero dejar claro que un objeto no tiene porqué ser la representación de un ser vivo, puede ser un vehículo moviendose entre otros vehículos.

Saludos
  #4 (permalink)  
Antiguo 28/07/2012, 16:21
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: arrays de funciones en python

Varias cosas, esto es un lenguaje interpretado lo cual es alta mente flexible.

1.- Si puedes hacer arreglos de funciones o mejor aun diccionario de funciones. De hecho es como emulamos un case.
2.- También puedes usar duck typing. (Si un objeto se ve como un pato y hace como pato entonces es un pato).

Lo siento pero la verdad sigo sin ver la pregunta de programación :(
  #5 (permalink)  
Antiguo 28/07/2012, 23:52
 
Fecha de Ingreso: julio-2012
Ubicación: Zaragoza
Mensajes: 4
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: arrays de funciones en python

Gracias por tu atención.

Podrías mostrarme un ejemplo de como crear un diccionario de > funcion asociada a un número ?< . Esto podría servirme. El manual que manejo es el que circula en la red "PYTHON para todos", si conoces algún otro en nuestro idioma te agradecerìa me dijeras donde descargarlo.

Saludos
  #6 (permalink)  
Antiguo 30/07/2012, 11:18
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: arrays de funciones en python

Código Python:
Ver original
  1. def f(x):
  2.     return x * x
  3.  
  4. def g(x):
  5.     return 2 * x
  6.  
  7. d = {0: f, 2: g}
  8. d[0](3) # 9
  9. d[2](3) # 6

Si no mal recuerdo en python para todos ponen un ejemplo similar para simular un switch-case.
  #7 (permalink)  
Antiguo 01/08/2012, 13:15
 
Fecha de Ingreso: julio-2012
Ubicación: Zaragoza
Mensajes: 4
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: arrays de funciones en python

Es fantastico... había probado de mil maneras y siempre me daba error. La solución que tu me has dado soluciona mi problema y me permite seguir adelante con mi idea de programa. Todavía queda mucho por recorrer. Levar una idea desde el papel al programa a veces cuesta porque surgen estas dudas que uno solo no sabe responder. Es bueno contar con gente que sabe de que va el asunto.

Muchas gracias Razpeitia.

posdata.... ¿ porque en el indice del diccionario has puesto primero el 0 y a continuación el 2 ?
  #8 (permalink)  
Antiguo 01/08/2012, 16:13
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: arrays de funciones en python

Por que un diccionario es diferente a una lista.

Una lista, sus indices son basados solamente en numeros, empezando desde el 0. En cambio un diccionario puede empezar desde cualquier objeto que sea hasheable, puede ser un entero (no necesariamente consecutivos).

Etiquetas: arrays, funciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:06.