Nota: Me es más difícil expresarme "normal" que mediante diálogos conmigo mismo como si fuera otro en ciertos casos... (si quieren sugiéranme cómo expresar mejor esto, pero no es el tema).
No entiendo (el título) ¿lo mejor para qué?
Eso es parte de lo que pregunto ¿pero hay algo mejor que el mundo siendo de la mejor manera posible?
¿No tienes miedo de que obteniendo la respuesta correcta quedes mal, y es decir con deseos de hacer cosas malas?
Un poco, mejor dime lo mejor que puedas decirme.
Eso excluye el caso en que no estés dispuesto a hacerlo, pero bueno, en realidad no sé bien qué decirte ¿cómo crees que se vincula el hecho de que tú hagas lo mejor que puedas y tú hablando con un programador? En otras palabras: ¿Por qué hablas con un programador?
Quizás proque me gusta la programación, pero siento que un buen programa puede aprender cosas útiles que yo no o que me llevarían mucho tiempo, incluso eso vinculado con otras personas (hay muchos profesionales pero la ignorancia también es mucha); es cierto que hacer un programa así también requiere mucho tiempo y aprender cosas que no me son fáciles, pero a la larga creo que es mejor. En estas condiciones, me interesa hablar con programadores para que me ayuden a percibir mejor cómo pasar de hacer programas que aprenden cosas sencillas de manera M, a programas que aprenden cosas complicadas (siempre y cuando sean útiles) de maneras mejores que M.
Bueno ¿pero qué has hecho de programación? ¿qué sabés?
Hice un programa así en flash 5:
1- Genera archivos txt cuyos nombres implican algún valor de alguna variable determinante y cuyos sus contenidos (el de los archivos) implican 3 variables: Una marca la última acción realizada hasta el momento, otra la acción realizada que hasta el momento obtuvo más valor de utilidad para un objetivo X, y otra el valor de utilidad de tal acción para tal objetivo.
2-...
Pará ¿a qué le llamás "variable determinante"?
En una situación variable, una variable que determina qué acción es útil para lograr un objetivo. En la parte 3 o 4 escucharás un ejemplo.
Continúa.
2- Comprueba que los archivos fueron creados.
3- Genera una situación que tenga sentido para los archivos (más bien es al revés; primero me hago la idea de cómo será la situación, luego configuro cómo serán los archivos); en este caso, un Pacman se ubica al azar en el eje de las X, que va de 10 a 30 sin implicar números no enteros, y así también se ubica un fantasma.
4- Se carga un archivo utilizando la posición X del Pacman como referencia; por ejemplo podrían llamarse (los archivos) S10.txt, S11.txt, etc (S de situación y el resto la ubicación X del Pacman).
5- Se verifica que se cargaron.
6- Si BestAct es 0 (considérese 0 distancia, lo mejor), se aplica una acción basada en BestActn; BestAct marca la utilidad y BestActn marca qué acción tiene esa utilidad. La acción también se realiza basada en BestActn si LastActn supera cierto límite, sino, LastActn aumenta 1 y la acción aplicada se basa en esa variable.
7-...
Pará, a ver si entendí:
BestAct marca cual es la acción que hasta el momento tuvo más valor de utilidad para un objetivo ¿qué sería cual (el objetivo)?
En este caso, hacer que el fantasma se ubique en la misma posición que el Pacman.
Bien...
Se entiende que es para practicar que la computadora aprenda cosas, en realidad ubicar ambos en igual posición puede hacerse simplemente en 1 paso...
7- Si LastActn varió, se guarda el archivo, sino se va al paso 3.
8- Se comprueba que el archivo fue guardado.
9- Se va al paso 3.
Bien, bien, vos querías ayuda para percibir mejor cómo pasar de hacer programas que aprenden cosas sencillas de manera M, a programas que aprenden cosas complicadas (siempre y cuando sean útiles) de maneras mejores que M ¿no?
Exacto. Por ejemplo una posible manera de mejorar ese programa es usando un archivo que marque una acción que sirva para todos los casos, o bien, archivos CS (conjunto de situaciones), pero la gracia es que esa acción sea descubierta por el programa, y eso no es sencillo para mí. Respecto a cómo hacer que aprenda cosas más complicadas, se me ocurre agregar posición Y, Z, etc, más personajes, acciones al estilo RPG, etc, pero no me parece que llegue a algo útil, es decir, no va a decir cómo mejorar las condiciones de la humanidad por decirlo así. Es como que la situación (incluyendo el objetivo) limita, como que no pasa por ejemplo por el Tateti (en efecto, aquí no se agregan cosas, simplemente cambian de posición, y si llegaran a agregarse no importa porque "no se gana" por formar líneas con ellas). Así que ¿hay una situación más básica? ¿por dónde empiezo o cómo sigo, cómo llego a cosas útiles?
En realidad pasan si se varía el objetivo, pero bueno, ya simplemente quiero explicar una cosa y otra manera de "avance":
En el programa expuesto los movimientos son "sin medios", esto es, que los personajes pueden pasar de un punto a otro sin pasar por puntos intermedios (tienen 20 posibles acciones); una manera de "avanzar" es limitar el número de puntos que pueden moverse (y de acciones), por ejemplo 1 (entonces las acciones serían sólo 3: 1 a la izquierda, 0, 1 a la derecha).
Disculpen que haya quedado muy largo...