Este ha sido un buen año para mi, es justo decirlo. En la segunda mitad de 2018 pasé unos meses bastante duros, honestamente no tenía muchas expectativas en enero. Pero en algún momento de febrero simplemente comencé a unir los puntos. Regresar a Mérida fue una sorpresa. Conocí a mucha gente increíble que ahora han hecho aún más grande mi grupo de "super science friends". Entré al fin a un posgrado (uno que años atrás, en una plática con un estudiante del CIC-IPN, me había parecido un reto muy alto). Tenía mucho que no sentía el haber aprendido más de lo que esperaba en un sólo año y que al fin, después de tanto funciono, bien otra vez.
Encontré un buen argumento más para escribir bitácoras públicas en un
lugar inesperado, un librazo sobre inteligencia artificial que me
recomendó uno de mis profesores: What to Think About Machines That Think. Pero necesito terminar de reconstruir el contexto antes de llegar a él. En Sobre mi vida reciente I me había quedado en mi sombría segunda mitad de 2018. Recibí 2019 en Zacatepec y regresé a Yucatán la primera semana de enero porque me habían aceptado para el SPI del CIMAT Unidad Mérida. Entre finales de febrero y la primera mitad de Marzo pasé mi última recaída psicológica y desde entonces me sentido como nunca. En mayo si no ml recuerdo me avisaron que había sido aceptado a la maestría en la UNAM (PCIC). Me ha gustado bastante hasta ahora. La carga de trabajo no es excesiva en volumen pero exige mucho tiempo de investigación, desarollo y depuración en el que caso de las tareas prácticas. En septiembre escribí lo siguiente en un estado:
"xkcd
tenía una gráfica de conocimiento vs seguridad de saber. Había un pico
cerca del origen y luego un valle muy grande, para después volver a
subir alto después de mucho. He de estar en el valle porque a pesar de
que cada semana aprendo a hacer cosas que se me hacían muy avanzadas
para mí en la mitad licenciatura, sigo viendo lejos una capacidad real
para resolver problemas de frontera. Porque es como caminar hacía el
horizonte; avanzas solo para darte cuenta de que hay más y más camino
para recorrer. En el caso de las ciencias naturales esto sería
emocionante (¡tanto por descubrir y tan poco tiempo!), pero en las
ciencias aplicadas me parece atemorizante (tanto por resolver, tantas
herramientas por entender, y tan poco tiempo)."
Me siento más satisfecho con mi despeño desde entonces, pero no puedo evitar sentir ganas de evitar el estancamiento académico (en una sana medida, quiero pensar). La materia que más disfrute fue inteligencia artificial. Los dos profesores que la impartieron son excelentes. Uno de ellos fue el que nos dio una montaña de excelentes recomendaciones de libros de divulgación sobre distintos temas (incluyendo el que comentaba más atrás). La mejor razón que encontrado para escribir con más frecuencia aparece en un ensayo de Cesar Hidalgo: "No creo que las máquinas puedan pensar, pero tampoco creo que las personas puedan". En su opinión, la capacidad de pensar no es algo que este confinado en un solo individuo u objeto. Si una persona hubiera pasado años desde su nacimiento aislada en una cámara de supresión de estímulos, aislada del universo entero, no tendría nada en que pensar. La capacidad de pensar es una propiedad distribuida. Requerimos de la interacción con el mundo, de conversaciones, del conocimiento de la vida e ideas de otras personas para poder pensar. Creo que si más personas regresaran a escribir en bitácoras publicas (cada una con al menos un circulo de lectores significativo), aumentaría la capacidad de pensamiento y empatía en una escala social. No hace falta que se discutan temas profundos. Cada detalle de lo cotidiano es un bloque de construcción necesario. Espero regresar más a menudo al anecdotario y encontrar nuevos bloggers este 2020.
jueves, 26 de diciembre de 2019
martes, 17 de diciembre de 2019
2006
Back then. |
nota: pueden encontrar aquí la versión formal de esta idea.
viernes, 6 de diciembre de 2019
Juego del gato (tic-tac-toe) vía algoritmo minimax.
Me dejaron el ejercicio de hacer un juego de gato y escogí el camino de la inteligencia artificial de la
vieja escuela. Pensé que era algo trivial pero si me costó varios días. Planeo hacer en vacaciones un video sobre el algoritmo minimax en mi
canal porque los que hay tienen códigos que ahora me parecen
innecesariamente complejos. La verdad es que, aunque mis amigos creen que lo digo sólo por modestia, soy muy pendejo para
entender las cosas a la primera y más aún si no me explican paso a
paso. Ya que vi claro todo el proceso recursivo me acordé del final de la película War Games. Les debo el video pero por ahora pueden consultar mi reporte aquí. La implementación que hice hace uso de la siguiente clase para instanciar los estados posibles del juego:
Contiene un método que verifica si el tablero ya esta lleno y otro que verifica si es el turno del jugador X. El pseudocódigo es el siguiente:
La función evaluación() retorna +10 si 'X' gana la partida, -10 si 'O' gana y 0 si hay empate o si aún no hay ganador en ese estado. El código completo en Python lo pueden encontrar aquí. Este programa sólo tiene el fin de ayudar a entender el algoritmo minimax. No es una implementación eficiente ya que resuelve el problema por fuerza bruta repitiendo incluso el paso por varios estados ya visitados. Pueden mejorarlo añadiendo estrategias como poda alfa-beta o memorizando estados ya visitados.
Contiene un método que verifica si el tablero ya esta lleno y otro que verifica si es el turno del jugador X. El pseudocódigo es el siguiente:
[click para agrandar] |
Suscribirse a:
Entradas (Atom)