domingo, 2 de octubre de 2016

Cierre del reto Julio González



Bueno, así es como pasa otra semana i, la primera en la que podemos escoger una actividad relacionada con nuestra carrera y una de las mejores semanas que he tenido en cuanto a la universidad en este año. Poder trabajar y concentrarse en un solo tema, el cual es al que me gustaría dedicarme una vez que salga de la universidad, ha sido genial, aunque no estuvo exenta de sus problemas, obstáculos y dificultades.

Siempre me ha interesado la IA desde que era pequeño. Las películas y libros que hablaran sobre eso me fascinan, ya que exponen un tema al cual las personas les da miedo llegar, pero no pueden evitar seguir trabajando y experimentando tratando de lograrlo. En lo personal, me gustaría saber de qué somos capaces como programadores en este aspecto.

Durante este reto, aprendí mucho, en especial sobre cómo se comporta o debería comportarse una IA muy básica, desde considerar todas las opciones posibles, ver sus consecuencias y elegir la que la acerque más a la meta, en este caso, sobrevivir el mayor tiempo posible. No pensé que desarrollar una IA significara tener que realizar todos esos pasos que muchas veces hacemos sin darnos cuenta y organizarlas de una manera que fueran codificables.

Si un amigo tomará este reto le aconsejaría que primero analizara el juego con mucha profundidad y por un largo tiempo para así encontrar los patrones que permitan obtener la victoria más fácilmente.
En general, lo que más me gustó de todas las actividades realizadas durante la semana fue diseñar e implementar la IA, ya que fue lo más retador e involucraba pensar de maneras que no estamos acostumbrados. Sin embargo, eso no significa que las otras actividades hayan sido pobres o no me hayan hecho razonar. Lo único que cambiaría del reto sería darle un poco más de tiempo a la actividad principal, ya que al estar hablando con otros equipos me di cuenta que casi todos podríamos haber hecho una IA mucho más efectiva con un día o dos más.

Experiencia del reto de Ian Neumann

Desde mi punto de vista fue un reto bastante interesante ya que se requiere de mucho intelecto para poder obtener un algoritmo lo suficientemente bueno como para ganarle a todos los demás equipos. Algo que le recomiendo a futuros equipos de este reto es que se pongan a jugar el juego en pizarrón hasta que encuentren un algoritmo viable (1 día) y después de eso ir a la implementación (1 día), y al final optimizarlo lo mas que se pueda (1 día).

Algo que cambiaría del reto sería que se plantee el concurso desde el primer día  y el concurso hacerlo el día viernes para poder aprovechar mejor el tiempo, ya que a mi equipo y a mí nos tocó desvelarnos el segundo y el tercer día ya que el cuarto era el concurso y el primero no podíamos adelantar nada. En lo personal este tipo de retos me agradan porque me gusta pensar e intentar resolver problemas a través de la programación, y en lo particular este reto me agradó demasiado por el simple hecho que estaba enfocado en la teoría de juegos. Mi sueño es trabajar en una empresa reconocida de videojuegos, que es básicamente el enfoque de este reto.

Otra cosa que cambiaría sería el límite inicial de tiempo de cada turno a un segundo y el día del torneo ya dejarlo en dos segundo, si no, se toma mucho tiempo y llega a ser extremadamente aburrido el concurso. También, podrían ofrecer puntos extra al equipo que le gane al primer lugar del año pasado.


Ha sido una gran experiencia para mí y en un futuro buscaré retos parecidos a este porque me van a servir para mi vida profesional y además son necesarios para un buen curriculum. Por mi parte es todo, muchas gracias por leer este blog y hasta la próxima.


Cierre del reto según Servio Reyes


Este reto me resultó grato desde muchos aspectos y considero que también me llevo muchas experiencias y aprendizajes nuevos. Los principales aprendizajes que me llevo tienen que ver con el “diseño e implementación de una solución de software ante un problema”, ya que la mayoría de los proyectos en los cuales he estado hasta cierto punto sabíamos el proceso para llegar a la solución o conocíamos la solución y aplicábamos reingeniería. En cambio este reto no conoces el proceso para llegar al final y tampoco la solución final para el problema de la serpiente, generando que nosotros tuviéramos que idear muchos algoritmos, casos prueba y comparar otras soluciones para ver cuál era la mejor.
La principal recomendación que le haría a un amigo si quisiera llevar el reto sería que primero intentara comprender lo mejor posible todos los escenarios posibles del problema (en este caso del videojuego) para que pueda llegar a una mejor solución sin tener que hacer muchos programas, ni que empezara a realizar prueba y error con el código hasta que dé con una solución viable (que sería muy raro ese caso pero puede suceder). De esta forma en caso que necesitar una mejora al conocer el programa le será mucho más fácil.
Este reto de la Semana i enfocado en el desarrollo de una Inteligencia Artificial en un Juego de Estrategia me gustó mucho y la verdad me agradaron mucho todas las actividades que hicimos por lo que no sabría decir a ciencia cierta qué fue lo menos me gustó o lo que más me gustó. Supongo que lo que más me “emocionó” fue el torneo en sí cuando nosotros veíamos los resultados de cada uno de los enfrentamientos entre nuestros códigos y al final cuando nos enteramos de las posiciones en las cuales quedamos. Quizás lo que se podría mejorar es encontrar una plataforma para videojuegos de estrategia con un ambiente gráfico más completo aunque de hacerse eso podría incrementar drásticamente la complejidad del reto, por lo que habría que encontrar un balance. De ahí en fuera me pareció un excelente reto. Gracias Profesor Ariel y Profesor Roberto por haber realizado esta actividad para nosotros.

Ex Machina


A continuación se presentan las preguntas para el análisis ético de la película vista Ex Machina:
1.      Is Nathan a reliable or unreliable narrator of his own motives and story? What can we say with certainty that we know about him or his actions in the film?
Nosotros consideramos que Nathan hasta cierto punto era una persona confiable. Esto porque no le miente a Caleb como tal, simplemente le oculta algunos elementos pero lo hacía con la finalidad que la “prueba de Turing” se hiciera lo mejor que se pudiera entre Ava y Caleb. 

2.      Does Caleb ever do anything we would consider truly unethical? Does he “deserve” his end?
Caleb no hizo nada realmente inmoral porque Caleb al hablar con Ava llegó a considerarla como un “ser con conciencia” equiparable a los de un humano, y por tal motivo ella merecería tener una vida “libre” y “tranquila” como cualquier otra persona. Siendo este el principal precepto de su forma de actuar. Y no merecía su final porque él actuó en base a los engaños que Ava le hizo creer, aunque por otra parte también fue su culpa al verse muy influenciado por sus sentimientos en el experimento.

3.      Speaking of the ending – how many legitimate storylines can you draft for the final scenes in the film? (“Legitimate” means the words and actions on screen as well as the previous scenes can support the storyline you suggest without breaking people’s expectations for story structure, honesty, or common sense.)
En base a la trama de la historia podemos suponer dos finales alternativos que se adecúan bastante bien. El primero es el que Ava y Caleb son “libres” pero debido a los intereses de Ava sigue manipulando a Caleb para conseguir lo que quiere. En el segundo final que se nos ocurre ambos personajes también son libres pero en este los sentimientos de Ava si son verdaderos por Caleb, implicando que realmente se pudo crear una IA que pudiera comprender las obligaciones y libertades que las personas tenemos en nuestras vidas. 

4.      Do you think there are any plot holes in the film?
Sí, en la parte que Nathan golpea a Kyoko quitándole la mandíbula por qué ella se desconecta al instante. Otro hoyo en la trama es el motivo por el cual Kyoko se encuentra en el pasillo en el momento que Ava también sale y cómo logra convencerla si Kyoko se supone que no entiende el lenguaje natural. 

5.      Before Ava “puts on” the skin of the other robots, do you think she passes the Turing Test? In other words, is her sentience/conscious awareness enough to allow her to exist with humans, or must she also take on the form of humanity?
Nosotros creemos que su conciencia todavía no está lo suficientemente desarrollada como para convivir con los humanos. Esto porque ella aun cuando ella pueda comprender las formas de pensar y que pueda interactuar con los humanos, Ava todavía no comprende lo que son las responsabilidades y las obligaciones que las personas tenemos con otras personas.

6.      Kyoko is a disturbing character to watch. What do her interactions with the other characters show us about Nathan, Caleb, and Ava? And about herself?
Kyoko aparentemente tiene una conciencia muy básica la cual no puede tomar decisiones, simplemente toma órdenes (aparentemente por medio del tacto). Por sus interacciones con los demás personajes podemos ver que Nathan aparentemente solo quiere tener relaciones sexuales con ella implicando que se siente muy solo. Caleb quiere hacer las cosas lo mejor que puede en base a sus creencias y experiencias pero no sabe luego cómo actuar. Y por último con Ava podemos ver que lo que más le interesa es lograr sus objetivos sin importar lo que les pase a los demás. 

7.      If you say it fast enough, Bluebook sounds a lot like Google. The similarities were thinly veiled. What does the film say to us about the dangers of our technophilic world?
El principal peligro que nosotros enfrentamos en este mundo cada vez más lleno de tecnología, recae en que nosotros no estamos midiendo las consecuencias de nuestros avances. Simplemente nosotros queremos ser cada vez mejores, llegar cada vez más lejos, sin importarnos tantos los “bienes o males” que pudieran traernos estos nuevos avances tecnológicos.