elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  ¿Resuelto? IA aprendiendo con pistas. ¿Por qué al final me da 1?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Resuelto? IA aprendiendo con pistas. ¿Por qué al final me da 1?  (Leído 3,765 veces)
Tachikomaia


Desconectado Desconectado

Mensajes: 1.180


Superhacker (es broma xD )


Ver Perfil
¿Resuelto? IA aprendiendo con pistas. ¿Por qué al final me da 1?
« en: 9 Junio 2020, 19:04 pm »

Cuando no hay pistas, no he tenido mucho problema por ahora; la "pista" es si cumplió el objetivo o no, y de qué situación se produjo cada una de las producidas que llevaron a cumplirse el objetivo.

Así:
Código:
Escena 1
   actions for fotograma 1
      // SitIni.
      Base.S = 10;
      // Guardar SitIni.
      SitID = "S"+Base.S;
      Depth = 1;
      attachMovie("Circ", SitID, Depth);
      setProperty (SitID, _x, random(401));
      setProperty (SitID, _y, random(301));
      set (SitID+".S", Base.S);
      set (SitID+".C", "Ninguno");
      // Cand normal.
      C = 1;
      // Vars de Unsolved sits.
      U = 0;
      Us = 0;
   actions for fotograma 2
      // Reset Sit. Aplic.
      S = Base.S+C;
      // ¿Sol?
      if (20<S) {
         // Sol; begin to show list
         List = C;
         gotoAndPlay (4);
         // Sino ¿la sit está anotada?
      } else if (eval("S"+S+".S") == undefined) {
         // No. Anotarla.
         SitID = "S"+S;
         Depth = Depth+1;
         attachMovie("Circ", SitID, Depth);
         setProperty (SitID, _x, random(401));
         setProperty (SitID, _y, random(301));
         set (SitID+".S", Base.S);
         set (SitID+".C", C);
         Us = Us+1;
         SitID = "U"+Us;
         Depth = Depth+1;
         attachMovie("Circ", SitID, Depth);
         setProperty (SitID, _x, random(401));
         setProperty (SitID, _y, random(301));
         set (SitID+".S", S);
      }
   actions for fotograma 3
      // La sit existe. ¿Candmod is pos?
      if (C<2) {
         // Candmod.
         C = C+1;
         gotoAndPlay (2);
      } else if (U < Us) {
         // Use Uns.
         U = U+1;
         Base.S = eval("U"+U+".S");
         C = 1;
         gotoAndPlay (2);
      } else {
         // No hay Sol.
         stop ();
      }
   actions for fotograma 5
      SitID = eval("S"+Base.S+".C");
      Base.S = eval("S"+Base.S+".S");
      if (SitID != "Ninguno") {
         List = List+" "+SitID;
         gotoAndPlay (4);
      } else {
         stop ();
      }
El pseudocódigo sería más o menos así:
Parte 1:
- Establecer situación inicial.
- Establecer valor inicial del candidato.
- Establecer situaciones halladas.
- Establecer situaciones analizadas.
...
Obviamente sigue pero no tengo ganas de pensar cómo describirlo humanamente. El candidato varía, las situaciones nuevas se analizan aplicándoles diferentes candidatos...

Cuando hay pistas, habría que ver el tipo de pista ¿cuales son posibles?
- Parecido de un valor. "Más" o "menos".
- Parecido de parte de un valor. Una forma de esto es lo que se hace en MasterMind.
- Parecido de la suma de las partes de un valor.
...son muchos imagino. Por ahora me interesa la 1, la más típica.

Otro punto relevante es si son suficientes o insuficientes. Empezaré por las suficientes.

Lo intenté...
Código:
Escena 1
   actions for fotograma 1
     // SitIni.
      Base.S = 10;
      // Guardar SitIni.
      SitID = "S"+Base.S;
      Depth = 1;
      attachMovie("Circ", SitID, Depth);
      setProperty (SitID, _x, random(401));
      setProperty (SitID, _y, random(301));
      set (SitID+".S", Base.S);
      set (SitID+".C", "Ninguno");
      // Cand normal.
      C = 1;
      // Vars de Unsolved sits.
      U = 0;
      Us = 0;
      Pista = "";
   actions for fotograma 2
      // Reset Sit.
      S = Base.S;
      // Mod de Aplic, basado en pistas.
      if (Pista == 2) {
         C = 2;
      }
      // Aplic
      S = S+C;
      // ¿Sol?
      if (20<S) {
         // Sol; begin to show list
         List = C;
         gotoAndPlay (4);
      } else {
         // sino se dan pistas si es posible
         if (20<=S) {
            Pista = 2;
         } else {
            Pista = "";
         }
         // ¿La sit está anotada?
         if (eval("S"+S+".S") == undefined) {
            // No. Anotarla.
            SitID = "S"+S;
            Depth = Depth+1;
            attachMovie("Circ", SitID, Depth);
            setProperty (SitID, _x, random(401));
            setProperty (SitID, _y, random(301));
            set (SitID+".S", Base.S);
            set (SitID+".C", C);
            Us = Us+1;
            SitID = "U"+Us;
            Depth = Depth+1;
            attachMovie("Circ", SitID, Depth);
            setProperty (SitID, _x, random(401));
            setProperty (SitID, _y, random(301));
            set (SitID+".S", S);
         }
      }
   actions for fotograma 3
      // La sit existe. ¿Candmod is pos?
      if (C<2) {
         // Candmod.
         C = C+1;
         gotoAndPlay (2);
      } else if (U<Us) {
         // Use Uns.
         U = U+1;
         Base.S = eval("U"+U+".S");
         C = 1;
         gotoAndPlay (2);
      } else {
         // No hay Sol.
         stop ();
      }
   actions for fotograma 5
      SitID = eval("S"+Base.S+".C");
      Base.S = eval("S"+Base.S+".S");
      if (SitID != "Ninguno") {
         List = List+" "+SitID;
         gotoAndPlay (4);
      } else {
         stop ();
      }
...pero las pistas siempre deberían ser "2" y no obstante el programa en el último caso elige "1".

Es un programa de posicionarse en un casillero que inicialmente es mayor al objeto que se posiciona.

¿Cual es la falla?


« Última modificación: 10 Junio 2020, 10:31 am por Tachikomaia » En línea

Emertech

Desconectado Desconectado

Mensajes: 21


:)


Ver Perfil
Re: IA aprendiendo con pistas. ¿Por qué al final me da 1?
« Respuesta #1 en: 10 Junio 2020, 00:09 am »

Citar
IA aprendiendo con pistas
Según esto piensas que tus líneas de código en Action Script están "aprendiendo" y tú estás desarrollando Inteligencia Artificial? Si es así, que te hace creer eso o en que te basas para afirmar que tus líneas de código van a "aprender" y que estás desarrollando IA?


En línea

Tachikomaia


Desconectado Desconectado

Mensajes: 1.180


Superhacker (es broma xD )


Ver Perfil
Re: IA aprendiendo con pistas. ¿Por qué al final me da 1?
« Respuesta #2 en: 10 Junio 2020, 00:44 am »

Según esto piensas que tus líneas de código en Action Script están "aprendiendo" y tú estás desarrollando Inteligencia Artificial? Si es así, que te hace creer eso o en que te basas para afirmar que tus líneas de código van a "aprender" y que estás desarrollando IA?

Estoy cansado no sé por qué (en parte porque no hallo la solución) y me vienes con esas... preguntas. A veces soy simplista, pero a ver, todo empezó cuando desesperado pensé en ir a una iglesia a ver si así el supuesto Dios me respondía cierta duda, y me di cuenta que si no existe sería bueno crearlo con programación. A partir de ahí tuve la suposición muy marcada de que una cosa es la IA de juegos donde por ejemplo si saltas hacia el rival te hace dragon punch (en Street Fighter 4, una pirata, de NES, es así), y otra cosa es que luego de hacer varas pruebas aprenda que eso conviene o en qué casos. ¿Es aprender? Son datos que en principio no están, que yo no le doy (sólo le doy qué posibles movimentos hay), y que sirven para lograr un objetivo que le planteo. Tal vez "aprender" es demasiado pretencioso, pero qué más da...
Similar en cuanto a si es IA o no es.
No sé si quedó respondido.
Imagina un eje de X y un objeto posicionado en él, antes del 20. Si le digo "ve al 20" así nomás, eso no es IA o es una sin aprendizaje, sin gracia, casi un programa normal. Si en cambio le digo que se mueva de todas las formas posibles en todas las condiciones posibles mientras no supere la casilla 20, hay diferencia...

En este caso hay pistas, pero eso es un agregado que estoy poniendo, que como expliqué puede tener diferentes formas, dificultad, suficiencia...

Realmente estoy cansado de gente que en vez de ayudar critica, o bien de discutir cosas. No digo que sea tu caso pero se parece. Posteo buscando soluciones obviamente, no para defender mis ideas.

La diferencia también o básicamente es que yo no sé qué solución hallará, pero eso sólo en programas complejos que no he llegado a hacer. Cómo superar el 20 es fácil, pero otras situaciones no, aunque tengan cierta analogía.
« Última modificación: 10 Junio 2020, 00:48 am por Tachikomaia » En línea

Emertech

Desconectado Desconectado

Mensajes: 21


:)


Ver Perfil
Re: IA aprendiendo con pistas. ¿Por qué al final me da 1?
« Respuesta #3 en: 10 Junio 2020, 02:13 am »

Lo pregunté por lo siguiente:
Tu problema sí se puede resolver con IA específicamente redes neuronales y aprendizaje profundo incluyendo una función tangente (inicialmente esta función para verificar eficacia por objetivo).
Pero para llegar a resolver de este modo entenderás lo que se necesita saber, sin mencionar que Action Script no está a la altura para poder desarrollar la solución.
Lo que estás haciendo se puede comparar a una persona que acaba de aprender a sumar y quiere realizar una suma algebraica de polinomios usando solamente sumas (sin recorrer el camino entre ambas), es por ese motivo que difícilmente encuentres a alguien pueda ayudarte.
En línea

Tachikomaia


Desconectado Desconectado

Mensajes: 1.180


Superhacker (es broma xD )


Ver Perfil
Re: IA aprendiendo con pistas. ¿Por qué al final me da 1?
« Respuesta #4 en: 10 Junio 2020, 02:32 am »

Si saben tanto entonces podrían decirme por qué al final me da 1... No pido más que eso creo.
En línea

Tachikomaia


Desconectado Desconectado

Mensajes: 1.180


Superhacker (es broma xD )


Ver Perfil
Re: IA aprendiendo con pistas. ¿Por qué al final me da 1?
« Respuesta #5 en: 10 Junio 2020, 10:30 am »

Hice una "investigación manual", o simulación manual, así:

Y como ven en la última línea es 1, es decir, la 1era situación, que cuando la duda está resuelta es la última en cargarse, dice 1. No sé exactamente por qué pasa eso o por qué ese es el problema, pero creo que está relacionado conque al inicio la pista no es 2.
Una solución es cambiar inmediatamente a C=2 una vez que se obtiene que pista es 2.
Dudo que sea la solución correcta o ideal, pero me quité un peso de encima.
« Última modificación: 10 Junio 2020, 10:36 am por Tachikomaia » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
separar pistas mp3
Software
Maria Pia 1 2,872 Último mensaje 16 Febrero 2003, 03:22 am
por Armando
pistas de audio
Multimedia
theloop 0 1,762 Último mensaje 25 Mayo 2004, 07:17 am
por theloop
AVI con dos Pistas de audio
Multimedia
plo koon 1 2,113 Último mensaje 25 Mayo 2004, 10:40 am
por Songoku
Algunas nuevas pistas sobre la tecnología que moverá Final Fantasy XIII
Juegos y Consolas
Castiblanco 0 1,383 Último mensaje 23 Febrero 2008, 21:09 pm
por Castiblanco
Problemas para instalar wifislax 4.3(final), 4.4.5 y 4.5(final) en HD
Wireless en Linux
Sprocet39 0 3,599 Último mensaje 20 Junio 2013, 17:13 pm
por Sprocet39
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines