Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Menu

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menu

Mensajes - Daemon

#61
Inteligencia Artificial / conciencia en software
26 de Junio de 2007, 09:08:00 AM
Citar
...comprendamos de forma completa el cómo funciona nuestra conciencia. Tal vez entonces, podremos simular algo mucho más parecido a la conciencia humana de lo que podemos simular hoy, pero seguirá siendo una simulación aunque parezca real.

Y si funciona de la misma manera hasta en el mas minimo detalle, ¿en que se distinguira del real?, simplemente en tu conocimiento a priori de que es simulado, pero si no lo tuvieses, serian indistinguibles. Como dicen en el Russell&Norvig, simular el resultado de una tormenta no nos deja empapados, sin embargo simular por computadora hacer una suma si que es sumar. A priori, y hasta que la psicologia cognitiva diga lo contrario (y hasta donde yo se no lo hace), la conciencia es fundamentalmente funcional y de la misma clase que las sumas. No creo en los argumentos de Searle sobre propiedades intrinsecas indistinguibles de la inteligencia y la consciencia humanas.

Saludos
#62
Inteligencia Artificial / Inteligencia Cooperativa
26 de Junio de 2007, 01:10:05 AM
Interesante la idea de usar redes neuronales para tomar decisiones en un rts. Aunque creo que haria falta especificar mas en que consiste ese estado que forma la entrada de la red. Podria ser, p.e., los atributos de la propia unidad y los de la unidad/unidades a las que se esta enfrentando (PV, armadura, puntos de ataque). La funcion de activacion que escogieses daria el tipo de comportamiento de una unidad u otra: por ejemplo, si el rango es entre [-1, 1] lineal seria una unidad normal, ni valiente ni cobarde, exponencial una unidad suicida de las que no huyen nunca y  hiperbolica una unidad que podria denominarse "histrionica" en tanto que ven la victoria en cuanto ganan por un poco y tambien se ven derrotados cuando pierden un poco :)

Cuando esta informacion llegase a la neurona del nivel superior ocurriria lo mismo, pero agregando toda la información de las neuronas de la capa de los"soldados" y la decision de este nivel subsumiria a las de este. Ademas estoy seguro que esto puede dar mucho juego. Si se quieren formar subgrupos yo haria una red en la que el nivel de "soldados" se tomase en su conjunto, es decir todas las neuronas "soldado" tuviesen conexion con todas las neuronas "sargento". Esto es asi para hacer dinamica la asignacion de grupos y desviar soldados de uno a otro grupo cuando estos lo necesiten. Adems todos estos comportamientos se podrian controlar mediante aprendizaje, y ese es el potencial que tendria esta red, que daria una sensacion mas humana y aparte ¡aprenderia a jugar mejor cada vez que se enfrentase a alguien!

Buena idea, si señor.
#63
Inteligencia Artificial / Otra pregunta de Novatos
13 de Marzo de 2007, 09:33:35 AM
Hola,

primero decir que por aqui seguro que hay gente que tiene mas experiencia que yo en el tema de IA y 3D (o sea que lo que diga seguro que se puede mejorar).

Creo que para un algoritmo de pathfinding que el mapa sea en 2D o en 3D no deberia variar demasiado la forma en que se realiza la busqueda de caminos. Como tu bien has expuesto, para un algoritmo de este tipo la busqueda se puede realizar en una matriz, que se puede simplificar a que sea binaria, en donde las casillas libres se marcarian con 0 y las ocupadas con 1. Supongo que tu terreno en 3D sera una matriz de puntos en el espacio (x, y, z), junto con una lista de objetos que se tratan como obstaculos y que se representan como otra serie de puntos (x, y, z). Pues creo que pasar de esta representacion 3D a la matriz en 2D es sencillo, basta con que trates la matriz de terreno como espacios libres (a 0) o como mucho que consideres un limite de altura en donde no se puede pasar. Posteriormente  coges los obstaculos y cada punto (x, y) de los mismos se pone a 1 (sin importar z). Esta es una forma simple de pasar de un terreno 3D a una representación 2D, en donde la distancia entre nodos en la matriz 2D es la misma que entre los puntos del espacio 3D. Si quieres simplificar siempre puedes coger un nodo como una cuadricula de puntos 3D (y promediar las alturas para ver si el nodo se considera obstaculo o no).

Un problema que quizas se pueda presentar es que el archivo de terreno tenga "cuevas", es decir que haya varios caminos posibles en un mismo conjunto de (x, y) pero a alturas diferentes. Para solucionar esto bastaria con formar un grafo de nodos con las distintas matrices de alturas diferentes, etiquetando los arcos que dan a uno u otro camino con el z en el que comienzan.

Creo que puede ser una forma, espero que te sea util.


Un saludo.
#64
Inteligencia Artificial / Redes Neuronales
31 de Enero de 2007, 10:26:22 AM
Buenaaas,

Cita de: "Lex"Usar redes neuronales para hacer la IA de un juego es matar moscas a cañonazos. Además no es precisamente algo ligero de ejecutar. Si vas a hacer un FPS usa maquinas de estados como todo hijo de vecino para las entidades y los grupos de entidades.

Como dice Vicente, lo caro es entrenar, su ejecución es algo bastante ligerito. Un pensamiento alternativo sobre las máquinas de estados aplicadas a los juegos: tener comportamientos de grupo y cooperativos conduce a una explosion de estados que puede llevarse mucho trabajo, aunque las maquinas sean jerárquicas. Hay por el foro un post de los que hicieron el Fallen Lords en el que se decia que el codigo para la IA era (creo recordar) bastante mas de la mitad del codigo del juego y la técnica empleada eran máquinas de estados jerárquicas. Con una RNA, lo "único" que necesitarías sería montar la arquitectura y entrenarla adecuadamente.
Y único entre comillas, por que aquí eso (dependiendo de lo que quieras) es lo más complejo de las RNA: acertar con el/los tipos de red y sus arquitecturas adecuadas al problema (sobre todo si tienes que componer redes) y tener conjuntos de ejemplos de entrenamiento validos.

Cita de: "Lex"sobre todo por el hecho de que nadie sabe a ciencia cierta como está formado y como funciona el cerebro. Ante tal desconocimiento simular algo que no conoces es dar palos de ciego...

Totalmente cierto, aunque no por ello la gente deja de estudiar y sacar modelos abstractos. Hay una parte fundamental en lo que has dicho, y es la palabra "funciona" y si este funcionamiento es algoritmico o si es de otra clase. En el primer caso una RNA tan compleja y con los mismos sistemas ocupandose de las mismas funciones que su homólogo biológico emularía el comportamiento humano. En el segundo caso, pues no se si una RNA puede ser una clase de máquina más general que una máquina de Turing.

En fin, las RNA son una bonita técnica que se podría aplicar al campo de los juegos, aunque si bien es cierto que lo que triunfa son las máquinas de estados creo que es por una cuestión de comprensibilidad de la técnica, tanto en comprender como crearla adecuadamente, como en su funcionamiento (en saber que va a hacer ante una determinada situacion).

Saludos.
#65
Inteligencia Artificial / IA de los sims
18 de Diciembre de 2006, 12:31:17 PM
¿Que quieres decir con "actuan muy roboticamente"? ¿Que todos tienen el mismo comportamiento?
#66
Inteligencia Artificial / Asignacion de tareas a trabajadores
22 de Noviembre de 2006, 08:51:04 AM
Pogacha, la solucion que tu has comentado (bracktracking) y las que yo digo son basicamente las mismas, lo unico que yo he hecho es especificar distintas maneras de moverse a traves del espacio de estados (es decir distintas maneras de generar una solucion); seria lo que tu has llamado "Permutacion(indice_de_permutacion_actual)". Aunque si bien es cierto que para el greedy..., pues no se si es correcto decir que es un algoritmo valido para este problema, ya que se trata de sacar la solucion optima y no se si habra alguna heuristica (aparte de calcular la solucion final real) que te diga cual es realmente el siguiente paso a dar (tampoco lo he pensado mucho).

Un saludo.
#67
Inteligencia Artificial / Asignacion de tareas a trabajadores
20 de Noviembre de 2006, 09:05:38 AM
2 algoritmos de busqueda no informada: profundidad y anchura
2 algoritmos de busqueda informada: greedy y A*.

Funcion heuristica (p.e.): la suma de los costes menores que queden para llegar a la solucion (aunque para el greedy te la vas a tener que currar mas).

P.D.: estoy de acuerdo con Mars.
#68
Inteligencia Artificial / Juego de cartas
06 de Noviembre de 2006, 08:33:09 AM
Hola,

yo la verdad es que nunca he jugado en serio al poquer o sea que poco te puedo ayudar. De todas formas si tienes cerca a algun experto puedes tratar de "sacarle" sus conocimientos y tratar de "algoritmizarlos". Supongo que al ser un juego en el que no posees una información completa del estado (no como el ajedrez), podrias tratar de usar algo del campo probabilistico, tipo red de bayes o similar.

Siento no poder ayudar mas, pero no conozco bien el juego del poquer :?

Un saludo.
#69
General Programadores / Threads o Procesos
09 de Agosto de 2006, 11:36:45 AM
Podrias probar a hacer un fork antes del exec. Copio aqui una parte de las paginas man relativa a esto:

 POSIX Threads
    In applications that use the POSIX threads API  rather  than
    the   Solaris   threads   API  (  applications  linked  with
    -lpthread, whether or not linked with -lthread), a  call  to
    fork() is like a call to  fork1(), which replicates only the
    calling thread. There is no call that forks a child with all
    threads and LWPs duplicated in the child.

    Note that if a program is  linked  with  both  libraries  (-
    lthread  and  -lpthread),  the POSIX semantic of fork() pre-
    vails.

 fork() Safety
    If a Solaris threads application calls fork1()  or  a  POSIX
    threads  application  calls  fork(), and the child does more
    than simply call exec(), there is a possibility of  deadlock
    occurring   in   the   child.  The  application  should  use
    pthread_atfork(3C) to ensure safety  with  respect  to  this
    deadlock. Should there be any outstanding mutexes throughout
    the process, the application should call pthread_atfork() to
    wait  for  and acquire those mutexes prior to calling fork()
    or fork1(). See   "MT-Level  of  Libraries"  on  the  attributes(5)
     manual page.
#70
General Programadores / Duda sobre EA
02 de Agosto de 2006, 10:33:15 AM
Al final lo he conseguido haciendo un par de cosas, aunque no se si ambas son necesarias.

Lo primero que hice, viendo que no habia manera de conectar los proyectos, fue generar el codigo a partir del modelo uml (mediante las opciones que posee para ello EA) en el directorio del proyecto de Eclipse, luego cree una clase mediante un wizard dentro del proyecto de eclipse, y desde EA probe a conectar ambos proyectos (solo por probar, pues ya creia que el .jar para el eclipse tenia algun fallo), curiosamente funciono.

Esta bien, al menos es posible realizar el paso del codigo que escribes en Eclipse al modelo UML del proyecto.

Un saludo.
#71
General Programadores / Duda sobre EA
25 de Julio de 2006, 08:53:23 AM
Hola, chicos!

Tengo una pequeña duda, a ver si alguno de vosotros se ha enfrentado antes a este problema (y lo ha resuelto, claro, :D).

Estoy intentando conectar el Enterprise Architect 6.1 a Eclipse 3.2 mediante el software MDGlink que ofrece Sparxs, para realización de paso de modelos de clases UML a codigo y viceversa, pero ocurre que siguiendo todos los pasos de instalacion (que por otra parte no son demasiados, basta con poner el plugin .jar del MDGlink en el directorio de plugins de eclipse e instalar el software), al abrir EA y decirle que me conecte un proyecto al actual que se encuentra abierto en eclipse, no consigue hacerlo, unicamente abre otra instancia de eclipse y se queda esperando hasta que sale el mensajito de 'Eclipse is not yet loaded, continue waiting?'
En el foro de Sparks he encontrado gente que dice que lo ha resuelto, o sea que consigue conectarlo, pero no dice como. Me he inscrito en ese foro y he preguntado, pero no me han respondido aun. ¿Alguno de vosotros ha trabajado con EA y Eclipse y le ha ocurrido algo similar?

Un saludo.
#72
Programación gráfica / Animacion Por Programacion
30 de Mayo de 2006, 04:16:52 PM
 En general, ¿cual es el comportamiento de un ser humano cuando se encuentra alegre, o triste? Siempre depende de la personalidad, pero tanto de una como de otra cosa es posible obtener modelos. De hecho existen (y he dicho modelos, por favor que nadie me crucifique, no quiere decir que las maquinas sean ya humanas y posean sentimientos). Y teniendo un modelo, el comportamiento viene adjunto.

En internet teneis articulos introductorios sobre esto, por ejemplo uno de Joseph Bates y Scott Reilly "Emotion as part of a Broad Agent Architecture".

Un saludo.
#73
Programación gráfica / Animacion Por Programacion
30 de Mayo de 2006, 01:41:34 PM
 
CitarFelipeBusquets
... Como crees que se podria hacer que una maquina calcule que un personaje ande deprimido, luego se detenga durante unos segundos, recapacite durante uno momento y se exalte por que ha recordado algo positivo que le hace feliz, luego se marche andando feliz y con una actitud positiva. ...

Enseñandole a hacerlo.
#74
Inteligencia Artificial / Curioso Lo De Pandora
06 de Abril de 2006, 12:29:34 AM
 Para aquellos a los que les interesen las redes neuronales, recomiendo un autor: Stephen Grossberg, alguien a quien merece la pena leer.

Aqui podreis encontrar algunas de sus publicaciones.

Este autor, investiga sobre aprendizaje, neurologia y modelos biologicos empleando tecnicas de redes neuronales. A el se debe una tecnica de RNA que puede realizar aprendizaje en linea denominada ART (Adaptative Resonance Theory) y que esta basada en sus investigaciones sobre la plasticidad del cerebro (posibilidad de aprender cosas sin necesariamente olvidar lo que anteriormente aprendio, adaptando los nuevos ejemplos lo mejor posible a las categorias existentes o redistribuyendolos y creando nuevas).

Creo que en algun otro post mencione los filtros de Grossberg, en concreto CORTX. Este filtro permite reconocer la forma de un objeto de forma independiente de su posicion, orientacion y tamaño, empleando una tecnica "neuronal". Curiosamente Grossberg lo baso en unas areas de activacion (tienen otro nombre que ahora mismo no recuerdo) de las neuronas existentes en la retina del ojo humano que reciben mayor excitación con unos patrones luminosos determinados y simples (lineas horizontales, verticales, esquinas..., aunque los toma como patrones similares con diferente orientacion) inhibiendo cuando estos estan activos a otros. La red CORT se basa en esto mismo, activaciones de patrones que reciben mas o menos excitacion en una "retina de neuronas" y una competicion para ver que patron es el ganador.

Tambien ha realizado modelos que reproducen algunas propiedades del sistema auditivo humano.

Personalmente este autor me encanta.

Un saludo.
#75
Inteligencia Artificial / Curioso Lo De Pandora
03 de Abril de 2006, 11:27:25 PM
Cita de: "gdl"... Puede que haya alguna correlación entre el color del pelo y la altura y el peso, pero creo que la red esa lo tiene chungo. Suponte que al camión (o al clasificador de Pandora) le damos los píxeles de una cámara (o a Pandora las muestras de una canción). La dificultad aumenta muchísimo. Aunque los datos están separados, el procesamiento requerido es fortísimo.

Lo mismo se puede hacer, pero lo veo muy difícil. Pandora dice cosas como "Te he puesto esta canción porque hay una voz femenina principal, hay piano en la introducción, hay un fondo de cuerdas, la tonalidad es mayor y otras características similares" (Me puso Enya). Cada una de las características por separado es de por sí difícil de extraer.
Como ya dije coincido contigo plenamente en que la informacion con la que se provea a la red es muy importante. Sobre lo de este ejemplo concreto del camion, creo que la información que se usaba eran mediciones de sensores del tipo que tu decias: giro de 3 grados a la izquierda del volante, parte trasera a 20.3 cm del borde, acelerador a 30 grados, etc..., no era de tipo visual. Sin embargo también existen trabajos con RNA en las que la informacion se le presenta a la red mediante una camara de video y la tarea a desempeñar es la conduccion de un automovil, de hecho con trafico y a una velocidad bastante aceptable. En el libro "Inteligencia Artificial un enfoque moderno" de Russell vienen algunos ejemplos de estos trabajos, de hecho no recuerdo si el del camion esta descrito ahi.
Por otro lado, y tambien como dije antes, una tarea de analisis muy complicada puede simplificarse realizando un preprocesamiento de la informacion a tratar. Aunque no soy musico, y si alguien sabe algo de esto que me corrija, lo que tu decias de las caracteristicas de una voz, un piano y el tono, puede que sean facilmente identificables en el dominio de la frecuencia, o sea que quizas pasando a la red distintas bandas de frecuencias de la cancion, pueda categorizar que es lo que se esta escuchando en las mismas, si una voz femenina o masculina, un piano, un violin o una guitarra electrica.
Esto es solo un ejemplo, que no tiene por que ser real, pero es solo para ilustrar que un dominio que a priori puede parecer complicado de procesar, con unas trasformaciones puede ser asequible para su tratamiento mediante la tecnica que se desee.





Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.