domingo, 2 de octubre de 2016

Cierre del Reto - Amin Mosri

Sinceramente yo creía que este proyecto de semana i, era más un curso intensivo de programación específico para inteligencia artificial. Este semana fue un verdadero reto para mí ya que la programación en python no es algo que yo practique diariamente, por lo tanto tuve ciertas dificultades personales a la hora de codificar mis ideas en el lenguaje de programación. Sin embargo, la misma práctica desarrollo del programa inteligente, me introdujo lo suficiente como para darme una idea de cómo se construye y los elementos que se pueden aplicar al programa. Desde conceptos como el aprendizaje automático hasta teoría de juegos, nos dimos la ardua tarea de investigar la forma de cómo traducir esas ideas a código.

Realmente recomiendo este reto. Porque es como tal un reto y no una actividad que no te dejara un aprendizaje. Pero si tuviera que recomendarlo, tendría que recomendarle a esa persona que se preparara y que practicara un poco la programación antes de entrar al concurso. Este reto se caracterizó por el esfuerzo de los equipos y entre mas entusiasmo le pusieran, su calificación se vería afectada positivamente.
El momento que menos me gustó del reto, fue en el primer concurso que hubo. Esto se debió a que justo en ese momento comencé a darme cuenta de la dificultad que iba a tener el curso y todavía cuando comenzamos a preparar nuestros programas para el torneo y nos enfrentamos a la dificultad de implementar un algoritmo eficaz para ganarle a todos, estaba dudoso de haber metido ese reto de semana i. Sin embargo una vez que comenzaron a salir los resultados del reto y empezamos a ver que no nos iba mal. Mi perspectiva cambió y todo el esfuerzo que implementamos en hacer nuestro programa, al final rindió frutos.

Agradezco a los profesores que estuvieron siempre disponibles para responder nuestras dudas y por haber implementado el reto de forma satisfactoria. Sobre todo agradezco por hacer de esta actividad un verdadero reto y no una actividad cualquiera. Me llevo mucho aprendizaje de los errores que tuve y también gracias a mi equipo que siempre estuvo unido a mi.


Cierre del reto (Astrid)

Tengo que admitir que cuando entré a este reto esperaba algo muy diferente, esperaba algo un poco más teórico y al ya haber finalizado este reto puedo decir que fue mucho más práctico.

La actividad que más me gustó fue el concurso de programación que tuvimos el primer día ya que me hizo recordar varias cosas que aprendí en mi curso de fundamentos de programación, que sinceramente pensé nunca volver a utilizar.

Una parte muy importante de este reto que no me agradó tanto fue la competencia que se generó entre equipos, no considero tan agradable que la evaluación del reto haya sido en forma de una competencia, a pesar de esto considero que no se generaron rivalidades entre los equipos y tampoco me imagino como podría ser otra forma de evaluación de este reto y aunque a mi personalmente no me fue mal en los resultados finales me toco ver a mis compañeros de otros retos muy tristes por no haber alcanzado los objetivos esperados.

También otro cambio que le haría al reto sería el manejo de los tiempos, ya que considero que para hacer el jugador estratégico es necesario más tiempo para así tener mejores resultados.

Finalmente considero que el reto fue muy estresante pero a la vez muy divertido y que aprendimos mucho porque pudimos ver a que se refieren cuando se habla de inteligencia artificial ya que en mi caso no tenía muy claro el concepto de inteligencia artificial y después de este reto, de las actividades y la película entendí muy bien el concepto, además de que lo pusimos en práctica.

Cierre del reto - Miguel Pérez

Como aprendizaje principal sobresalto el que antes no sabía en realidad cómo es que se programaba AI para un uso específico. En este reto fuimos capaces de meter las manos en la elaboración de un programa que jugara por sí solo sin la intervención de un humano. Aprendí que para que la inteligencia del programa sea muy avanzada, se necesita de un nivel de abstracción muy complejo en el cual todas las alternativas posibles están cubiertas. Al menos eso es lo que se busca.

Fue grato para mi ver a muchos estudiantes interesados en el tema. Puedo ver que algunos de ellos tienen capacidades sobresalientes tanto para programar como para trabajar en equipo. No dudo que varios consigan laborar en un establecimiento que promueva el uso de inteligencia artificial y que ellos sean parte del desarrollo. Personalmente me gustaría resolver más problemas con el uso de la programación para entrenar y ser un programador competente. En especial este reto me dio la motivación para adentrarme más al mundo de la programación por mi cuenta.

A un amigo que quisiera llevar este reto en el futuro le diría que repasara la sintaxis de Python y un poco de lógica. Sentimos que perdimos bastante tiempo intentando recordar "cómo se hacía tal cosa en Python...", por lo que al final nos faltó tiempo para dedicarle a la lógica. Le recomendaría que pensara dos veces antes de entrar, ya que la cantidad de trabajo (al menos en el torneo) es mucho si se desea sobresalir en los primeros lugares.

De todas las actividades yo creo que la que más me gustó fue cuando vimos la película "Ex Machina". No es que me hayan disgustado las otras actividades, pero al nunca haber visto esa película, por alguna razón la reflexión de la misma generó un impacto grande en mí. El simple hecho de pensar en un robot humanoide lo suficiente inteligente como para aprender y aplicar su conocimiento me causa un conflicto extraño.

Ninguna actividad me disgustó en realidad. Se me hizo pesado de todas maneras la competencia de programación del primer día aunque admito que nos pusieron a trabajar y a pensar desde el principio.

Dos cambios que le haría al reto sería que se diera un repaso de al menos una hora para recordar la sintaxis de Python. También extendería la duración de la competencia para que se pudieran entregar resultados hasta el último día. De este último tengo mis dudas, pero seguramente con la logística adecuada el cambio sería beneficioso para los estudiantes.

Ex Machina

Ex Machina: Discusión ética

Sobre si Nathan era confiable o no y acerca de lo que se puede decir de sus acciones. Nuestro equipo llegó a la conclusión de que dicho personaje solo seguía su impulso de experimentar. Sus acciones o métodos no eran confiables sin embargo lo que el perseguía era de cierta forma bueno para la humanidad.
Por otro lado Caleb siempre fue un personaje con una moral muy correcta. Lo único que se pudiera considerarse no ético, fue el hecho de haber saboteado la casa de Nathan para que la IA (Ava) pudiera escapar. Y para nosotros Caleb no merecía quedar encerrado en la casa de Nathan.
Con respecto al final , hubiéramos podido esperar un escenario en el que Ava y Caleb escaparan de la casa de Nathan y pudieran cumplir el sueño de ir a la intersección de autos y/o un poco mas profundo realizar el sueño de que Ava pudiera conocer el mundo exterior. Aunque un poco más apegado a las últimas escenas esperábamos que Caleb pudiera escapar y detener a Ava en los propósitos que pudiera tener.
Quedaron ciertas preguntas con respecto a la trama del filme, por ejemplo: 
  • A lo largo de la trama observamos algunas cuestiones filosóficas y psicológicas que simplemente no se responden y se nos presente más bien un final comercial, predecible y muy simplista.
  • Nunca se explica porque Nathan tiene tantos problemas con la bebida, se implica que debe ser por su forma de vida pero jamás se habla de eso. Así como nunca se explica porque los robots, todos o mas bien dicho todas, tenían la apariencia de una mujer.
Los movimientos atinados de Ava y su coordinación facil con respecto a sus "emociones", nos hace ver a un robot muy humano e incluso cuestionarnos si en realidad Caleb es el robot en cuestión. Es por esto que creemos fervientemente que ella no necesitaba de ponerse la piel de los otros robots para poder interactuar con humanos. Y que mucho antes de que esto ocurriera, ella había logrado atravesar victoriosa la prueba de Turing.
Otro personaje importante en la película, era Kyoko, otra IA. Durante la película, Kyoko, fue utilizada por todos para su propio beneficio. En primera instancia, Nathan, la utilizaba para fines sexuales y como sirvienta. Caleb logró que le enseñara que ella también era un robot y así se dio cuenta de lo que había estado haciendo Nathan. Y finalmente Ava la utilizó para deshacerse de Nathan.
La mayor enseñanza que nos deja esta película, es el cuidado que debemos tener al utilizar tecnología. Esta puede ser utilizada en nuestra contra. En este caso la información recaudada en el buscador parecido a google, se aprovechó para darle inteligencia al robot y Nathan la empleo de mala forma, para encontrar al candidato idóneo para el experimento, en este caso, Caleb.

jueves, 29 de septiembre de 2016

El torneo de estrategias

Los resultados de este torneo fueron bastante satisfactorios considerando el poco tiempo que se tuvo para la implementación de nuestro jugador estratégico y de los problemas que llegó a presentar nuestro código que impedía que tuviéramos un mayor avance a tiempo.

Si hubiéramos tenido más tiempo para desarrollar nuestro jugador estratégico, tomando en cuenta que la estrategia que seguimos nos dio buenos resultados, probablemente hubiéramos seguido esa misma linea de estrategia solamente que a un nivel más profundo ya que nos daría tiempo de revisar nuestro programa con más paciencia y más detalladamente y así poder optimizar algunos procesos que nos permitieran ahorrar tiempo y llegar a niveles de predicción aún más
profundos de los que llegamos.

También es importante comentar que al principio fue un poco decepcionante ya que en la partida contra el jugador aleatorio tuvimos un 61% de victorias, cuando en nuestras pruebas pocas veces obteníamos ese porcentaje; por lo general nuestro porcentaje era más alto. Nos gustó mucho que la decisión de los profesores haya sido de considerar acreedores del 20% extra de la calificación a los equipos que tuvieran más del 60% de victorias ya que, como ya mencionamos anteriormente, nuestro porcentaje de victorias, en general, no era tan bajo.

Este equipo, como la mayoría de los equipos, consideramos que hubiera sido una mejor opción hacer el torneo el viernes 30 de septiembre ya que nos hubiera dado más tiempo de perfeccionar nuestros códigos para hacerlos más eficientes y que entregaran mejores resultados, ya que consideramos que fue muy poco el tiempo que tuvimos para hacer varias cosas; como entender y analizar el juego (Orugas), encontrar algún tipo de estrategia que incrementara el porcentaje de victoria, familiarizarnos con el programa del juego y las funciones del mismo y también corregir los errores o superar los obstáculos con los que nos fuimos encontrando.

En general fue una buena experiencia, nos hizo explorar un poco más nuestras capacidades y darnos cuenta que no sólo se pueden resolver problemas de la vida diaria con programación sino también, como en este caso, ejemplificar como funciona la inteligencia artificial en juegos en los que la estrategia de evaluar las decisiones que se pueden tomar es lo más importante para conseguir la victoria, tratando de simular la toma de decisiones de una persona.

miércoles, 28 de septiembre de 2016

Programando un jugador estratégico

En este reto, de crear un jugador estratégico para el juego Orugas, nos encontramos con una gran dificultad, ya que la estrategia que nuestro jugador tenía que seguir para conseguir la victoria no era tan obvio ni evidente como en los juegos que analizamos anteriormente, por lo que tuvimos que empezar a jugarlo varias veces para analizar que tipo de comportamiento le convenía a nuestro jugador seguir.

Después de jugarlo varias veces llegamos a una conclusión la cual indicaba que el porcentaje de victorias de nuestro jugador se podría incrementar, pero esta no fue la solución final, ya que al intentar plasmar nuestras ideas con el lenguaje de programación indicado no nos fue tan sencillo porque la lógica de nuestro programa nos decía que los resultados serían los esperados pero al final los resultados fueron otros.

Seguimos intentando con varias ideas y con diferentes formas de expresarlas llegando al resultado que actualmente tenemos.

Nos ha gustado mucho el reto intelectual que esta actividad tiene, sin embargo consideramos un poco injusto que esto sea una competencia, ya que cada equipo tiene habilidades diferentes y no significa que uno merezca más calificación que otro. Independientemente de lo antes mencionado también consideramos injusto perder algún porcentaje de la calificación de nuestra semana i a pesar de esforzarnos y dar lo mejor de nosotros mismos cuando en otros retos simplemente con la asistencia o con aportar algunas ideas ya tienen asegurado el 5% que vale su semana i.

Finalmente queremos externar que esperamos lo mejor en el torneo de mañana, jueves 29 de septiembre, ya que confiamos plenamente en nuestras habilidades y en nuestros resultados obtenidos, deseándoles lo mejor a todos los equipos.

Programando un jugador estratégico

El desarrollo del programa claramente presentó para nosotros un gran reto. Tener ideas claras de qué es lo que se desea implementar es necesario si se quiere llegar a hacer algo. Es indispensable plasmar todas las ideas en cuadros, diagramas, dibujos, etc. para comprender el algoritmo a implementar y no perderse en la abstracción del problema.

Lo único que nos gustaría compartir de nuestra estrategia es que optamos por programar un acercamiento tanto ofensivo como defensivo. Ambas partes se deciden seleccionando de una tabla de prioridades previamente definida por nosotros.

Las dificultades encontradas se centraron principalmente en la interpretación de los datos. Por un momento no sabíamos analizar la información otorgada por las clases y funcionalidades escritas por los profesores. Estas dificultades se resolvieron con el uso inteligente de la función "print" de Python en distintas secciones para finalmente reconocer lo que estaba sucediendo.

Lo que más nos ha gustado del proyecto son dos aspectos. a) La oportunidad de trabajar con compañeros de la misma carrera y compartir propuestas con ellos. b) La disponibilidad de los profesores para ayudarte con las dudas que tengas en un momento dado.

Por otra parte, la dificultad del reto se impuso ante nosotros de una manera monumental. Todos los miembros de nuestro equipo estudiamos robótica. Todos coincidimos que nos faltaba mucha práctica para familiarizarnos tanto con la resolución de problemas con programación como con el uso del lenguaje Python. Un aspecto importante que no se nos hizo justo es que la calificación final de la semana i dependiera de concursos y torneos. Un miedo constante aparece cuando la posibilidad de no obtener puntos a pesar del esfuerzo sea muy grande.

Dicho lo anterior, para el torneo de mañana esperamos que nuestro programa tenga un desempeño favorable para que la Semana i no nos siga perjudicando más nuestro promedio escolar.

martes, 27 de septiembre de 2016

Teoría de Juegos

La Teoría de Juegos está diseñada para aprender y construir estrategias para ganar.

Supongamos que dos personas o más compiten para conseguir algo (grupos). Lo obvio de un juego es que los dos quieren ganar.

La teoría de juegos no se propone a enseñar los secretos de como jugar perfecto. El oponente leería el mismo libro y los dos no pueden ganar el mismo juego.

Saber quien de los dos jugadores es capaz de maximizar el retorno en el sentido de ganancia.

Pensamiento estratégico: Se estudia las posibilidades de acción de todos y se estudia una estrategia a seguir.

Hasta mentir en un juego puede ser beneficioso a largo plazo. El jugador opuesto al tener en mente tu acción se puede confundir más adelante.

John Forbes Nash
El equilibrio de Nash: es una definición sobre lo que significa alcanzar una situación en la que todos los participantes se van a sentir contentos. En la que todos advierten en la que es mejor establecer una estrategia que sea mejor para todos que una individual. Considerar juegos con participación coordinada de muchos jugadores. Nash ganó en 1994 premio nobel de economía.

La teoría de juegos establece que en la mayoría de los casos los jugadores confesaran en lo que se puede considerar como la estrategia dominante

Se trata de mostrar el conflicto entre el interés individual y grupal.

Los juegos ayudan a desarrollar estrategias para la vida cotidiana.

El día de hoy estuvimos analizando juegos, para así encontrar la estrategia que finalmente lleve al jugador a la victoria. Esta estrategia se sigue, teniendo en cuenta que no siempre el jugador va a tener la posibilidad de seguir las acciones establecidas en la estrategia por lo que el porcentaje de victorias no siempre será el 100% , como fue el caso con el que nos encontramos al buscar la estrategia que nos permitiera obtener el mayor número de victorias  en el juego D10.

Después de entender y analizar el juego D10 nos encontramos con que los puntos claves para empezar a construir una estrategia de victoria eran las casillas 1, 4, 7 y 10 por lo que nuestra estrategia consistió en ocupar esas casillas mientras fuera posible y si ese no era el caso optamos por solamente ocupar una casilla en nuestro tiro para así intentar minimizar las posibilidades de derrota, maximizando las posibilidades que se tiene de poder ocupar una de estas casillas clave posteriormente.

Finalmente cuando terminamos de analizar, diseñar y programar nuestra estrategia de victoria para el juego D10 comenzamos a hacer lo mismo para el juego Orugas encontrándonos con que la estrategia y/o las acciones que nos llevarían a la victoria no era tan obvias y evidentes como en el juego anteriormente analizado (D10) lo que nos llevó a estancarnos y desmotivarnos un poco, pero finalmente llegamos a algunas conclusiones que consideramos ampliamente satisfactorias ya que al parecer estas conclusiones nos permiten tener un avance en nuestra estrategia para la victoria.

Referencias:

Varios, A. A. Tectv La Señal de la Ciencia. (2015, Junio 22). Grandes temas de la matemática: Capítulo 6: Teoría de los juegos. Recuperado de https://www.youtube.com/watch?v=DVWT_8UomvM

lunes, 26 de septiembre de 2016

Concurso de Programación

Primer competencia
Para el comienzo de nuestra semana i en el reto de Inteligencia Artificial se hizo una especie de torneo en el que se formaron equipos de no más de tres personas. Puntualmente a las once de la mañana comenzó aquel primer gran desafío. El cual consistió en generar soluciones concretas para ciertos problemas específicos. Contábamos con tres horas para lograr resolver siete problemáticas distintas. Las cuales variaban en los temas y en el procedimiento para resolverlas.

A lo largo del concurso, nos enfrentamos con la problemática, de no recordar cierta estructura del lenguaje que se utilizó. Esto se debió a la poca práctica que teníamos utilizando dicho lenguaje, por lo tanto nos vimos afectados en tiempo, intentando generar procesos por métodos sencillos que recordáramos como se hacían. Conforme se desenvolvió la competencia surgió estrés al darnos cuenta que muchos equipos llevaban puntajes altos mientras nosotros seguíamos en los primeros ejercicios. Así mismo la idea de que podríamos quedar en los últimos lugares pudo ser un factor de desmotivación, porque sabíamos que ya no obtendríamos la mejor calificación. También consideramos que fue muy importante y motivador que de cierta forma, a pesar de que la competencia del día de hoy, al igual que el reto completo de la semana i, se basa particularmente en programación, de igual manera se tomó en cuenta algunos temas que van muy de acuerdo y muy ligados con nuestra carrera (ISDR); como fue el caso de la multiplicación binaria al igual que el del bit de paridad.

Aun con las problemáticas que se presentaron a lo largo de la justa, nuestro equipo se mantuvo con el mismo desempeño de principio a fin y hasta el último minuto intentamos dar nuestro mejor esfuerzo, tratando de hacer las cosas lo mejor posible. Algo de lo que podemos estar orgullosos como equipo. Aunado a esto, el hecho de que cada solución que dimos a los problemas estuvo correcta al primer intento, también es algo de lo que podemos presumir.

Por último, como reflexión del primer desafío. Debemos recalcar la importancia que tienen este tipo de concursos y sobre todo lo relevante que es el desarrollo del pensamiento por medio de estas prácticas. Y que la ejecución de muchos ejercicios de este tipo, será lo que nos permita ser mejores.

Presentación Personal - Miguel Pérez

Mi nombre es José Miguel Pérez y soy estudiante de la carrera ISDR. Aunque mi carrera no se especialice al desarrollo de software, he tenido gran interés por la solución de problemas utilizando programación. La programación es una gran oportunidad para desarrollar nuestro pensamiento y darle estructura a la forma en la que resolvemos problemas.

Escogí esta actividad de semana-i precisamente por el reto que conforma diseñar soluciones con programación, por conocer un poco más de cómo funciona la inteligencia artificial en distintos sistemas y finalmente por formar parte de la construcción de la misma. Las expectativas que tengo de esta semana las veo con muy buena actitud aunque se que el trabajo será duro. Espero que los profesores sean capaces de educarnos y responder nuestras dudas para sacarle el mayor provecho a este reto.

Aunque dudo que mis compañeros vayan a leer este blog me gustaría compartir algunos de mis pasatiempos e intereses. Aparte de lo que normalmente uno le llama "echar la hueva", paso mi tiempo reflexionando de cómo podríamos cambiar a México como comunidad. Como a muchos me gustaría hacer algo grande por el mundo pero sé que se tiene que hacer de manera inteligente y poco a poco la solución emergerá. Uno de mis pensamientos consiste en abrazar, estudiar y comprender la tecnología como el medio que nos permitirá dejar nuestras vidas mediocres (en el sentido literal de la palabra) y potenciar nuestra calidad de vida.

Además de reflexionar me gusta mucho la música. Por el momento me encuentro estudiando el violoncelo y disfruto mucho cuando dos del mismo instrumento suenan en armonía. Paralelamente me gustan las series de televisión. Actualmente mi novia y yo estamos viendo la serie "How to get away with murder" y no hemos parado de verla. Concluyo con estas últimas palabras para escribir el mínimo de 300 que pide la bitácora de evaluación.
Amin Mosri
Mi nombre completo es Rauf Amin Mosri Rebollar, tengo 21 años de edad y voy en el primer tercio de la carrera de Sistemas Digitales y Robótica.

Escogí este proyecto debido al desafío que representa para mí. A lo largo de esta semana espero fortalecer mis conocimientos, por medio de la práctica, acerca de la materia de programación. A sí mismo pensé que sería uno de los retos que más me favorecería ya que es una de mis áreas de oportunidad que debo desarrollar. De los tantos proyectos que había, fue el que me pareció más útil para fines de mi carrera.

Entre mis pasatiempos e intereses personales se encuentran, tocar guitarra y componer música, hacer deporte como calistenia, jugar Ultimate frisbee o incluso correr, ver series de televisión es algo que disfruto mucho sobre todo del género de la comedia, también gozo al ir a ver películas en el cine sin que falten unas deliciosas palomitas. La manera en que mejor me expreso es a través de mi música y siempre me ha interesado aprender a tocar ciertos instrumentos y desde chico aprendí a tocar guitarra, tomé clases de batería y recientemente empecé con clases de piano.

Aunque me parezca que es un poco complicada la manera en que se calificará el proyecto, creo que implica un gran esfuerzo de todos los participantes para poder estar entre los primeros lugares y obtener la calificación máxima. Aunque esto no quiere decir que los otros equipos no se hayan esforzado o sean menos capaces de hacer las cosas. Creo que algo que debemos llevarnos de este desafío es la competencia. De igual forma tratar de aprender a ser parte de un equipo y escuchar las ideas de los demás, siempre con la finalidad de mejorar y de hacer las cosas distintas, destacadas y sobresalientes.

Soy Astrid

Soy Astrid Minerva Villegas Berdejo, me gusta que me digan Astrid porque mi segundo nombre no me gusta. Estoy estudiando Ingeniería en Sistemas Digitales y Robótica (ISDR), voy en tercer semestre de la carrera, tengo 19 años.

La decisión de entrar a esta carrera la tomé con muy poco tiempo, ya que yo pensaba estudiar otra carrera, hasta que me llamó la atención la Robótica y los Sistemas Digitales y fue cuando fui a hablar con mi director (Luis Manuel Diaz) y me explicó de lo que se trataba y algunos de los temas que iba a ver a lo largo de la carrera. Lo que más me llamo la atención fueron los tópicos al final de la carrera, porque hay uno muy relacionado con arquitectura, llamado domótica ya que la carrera que quería estudiar antes de decidirme por Ingeniería en Sistemas Digitales y Robótica era Arquitectura o Ingeniería Civil, pero finalmente me di cuenta que esas carreras iban en declive y la carrera de ISDR apenas va teniendo un gran crecimiento y en este tópico se juntaban de alguna forma estas carreras.

De esta semana i espero tener más conocimiento de la inteligencia artificial ya que posteriormente tendré que tomar una decisión sobre a que camino va dirigida mi carrera, al igual que esta actividad me ayuda a recordar el lenguaje de programación que estamos utilizando.
También quiero que esta semana i me ayude a reafirmar la decisión que tomé acerca de mi tópico (domótica) o saber si también puedo considerar inteligencia artificial como tópico.

Mi música favorita es indie y rock alternativo y aunque son pocas personas a las que les gusta esta música a mi no me importa y la sigo escuchando. Me gusta pasar mi tiempo libre viendo series en Netflix y jugando Pokemon Go