Вы находитесь на странице: 1из 4

ALGORITMO MINIMAX

Historia
Aunque existen evidencias de que Charles Babbage ya había trabajado antes sobre una idea
similar,1 fue el matemático francés Émile Borel el primero en ofrecer en 1921 un tratamiento
riguroso a los juegos competitivos y en estudiar las estrategias aplicables a los juegos de suma
cero.23 Sin embargo suele atribuirse a John von Neumann el principal mérito de la concepción del
principio minimax, ya que fue él quien, en su artículo de 1928 «Zur Theorie der
Gesellschaftsspiele» («Sobre la teoría de los juegos de sociedad») publicado en la revista
Mathematische Annalen,4 puso las bases de la moderna teoría de juegos y probó el teorema
fundamental del minimax, por el que se demuestra que para juegos de suma cero con información
perfecta entre dos competidores existe una única solución óptima.

MINIMAX ES:
 Algoritmo de decisión para minimizar la pérdida máxima aplicada en juegos de adversarios
 Información completa (cada jugador conoce el estado del otro)
 Elección del mejor movimiento para cada jugador, suponiendo que el contrincante
escogerá el peor.
 El espacio de estados se representa mediante árboles alternados, donde:

1. Nodo: Representa una situación del juego.


2. Sucesores de un nodo: Situaciones del juego a las que se accede por movimientos legales
aplicando sus reglas.
3. Nivel: Contiene todas las situaciones posibles para uno de los jugadores.

 El algoritmo Minimax es un procedimiento recursivo y el corte de la recursión está dado


por alguna de las siguientes condiciones:
1. Gana algún jugador
2. Se han explorado N capas, siendo N el límite establecido.
3. Se ha agotado el tiempo de exploración.
4. Se ha llegado a una situación estática donde no hay grandes cambios de un nivel a otro.

Pasos del algoritmo minimax:


1. Generación del árbol de juego. Se generarán todos los nodos hasta llegar a un estado
terminal.
2. Cálculo de los valores de la función de utilidad para cada nodo terminal.
3. Calcular el valor de los nodos superiores a partir del valor de los inferiores. Según nivel si
es MAX o MIN se elegirán los valores mínimos y máximos representando los movimientos
del jugador y del oponente, de ahí el nombre de minimax.
4. Elegir la jugada valorando los valores que han llegado al nivel superior.
NetBeans
es un entorno de desarrollo gratuito y de código abierto que en el momento de escribir este
artículo está en su versión 7.4. Permite el uso de un amplio rango de tecnologías de desarrollo
tanto para escritorio, como aplicaciones Web, o para dispositivos móviles. Da soporte a las
siguientes tecnologías, entre otras: Java, PHP, Groovy, C/C++, HTML5, Además puede instalarse
en varios sistemas operativos: Windows, Linux, Mac OS.

Historia
Nos tenemos que remontar a 1996 e ir hasta Praga, en la república Checa, donde nace un proyecto
llamado Xelfi en el ámbito universitario (Facultad de Matemáticas y Física). Se pretendía escribir
un IDE para Java que se pareciera al que tenía el lenguaje Delphi (de ahí el nombre de Xelfi). El
código fue escrito en Java, y se convirtió en el primero escrito en dicho lenguaje con la publicación
de su primera pre-release en el año 1997.

Características Principales
 Asistentes para la creación y configuración de distintos proyectos, incluida la elección de
algunos frameworks.
 Buen editor de código, multilenguaje, con el habitual coloreado y sugerencias de código,
acceso a clases pinchando en el código, control de versiones, localización de ubicación de
la clase actual, comprobaciones sintácticas y semánticas, plantillas de código, coding tips,
herramientas de refactorización, y un largo etcétera. También hay tecnologías donde
podemos usar el pulsar y arrastrar para incluir componentes en nuestro código.
 Simplifica la gestión de grandes proyectos con el uso de diferentes vistas, asistentes de
ayuda, y estructurando la visualización de manera ordenada, lo que ayuda en el trabajo
diario. Una vez que nos metemos en una clase java, por poner un ejemplo, se nos
mostrarán distintas ventanas con el código, su localización en el proyecto, una lista de los
métodos y propiedades (ordenadas alfabéticamente), también hay una vista que nos
presenta las jerarquías que tiene nuestra clase y otras muchas opciones. Por supuesto
personalizable según el gusto de cada usuario.
 Herramientas para depurado de errores: el debugger que incluye el IDE es bastante útil
para encontrar dónde fallan las cosas. Podemos definir puntos de ruptura en la línea de
código que nos interese, monitorizar en tiempo real los valores de propiedades y
variables, se nos permite ir paso a paso, ejecutar un método de un tirón, o entrar dentro,
en fin, las opciones típicas, pero que tan útiles son en el trabajo diario. Incluso podemos
usar el debugger en caliente, conectándonos a él cuándo ya tenemos un proceso
ejecutándose.
 Optimización de código: por su parte el Profiler nos ayuda a optimizar nuestras
aplicaciones e intentar hacer que se ejecuten más rápido y con el mínimo uso de memoria.
Podemos igualmente configurarlo a nuestro gusto, aunque por defecto, nos ofrece
opciones bastante útiles. Lo importante es que podemos ver el comportamiento de
nuestra aplicación y obtener indicadores e información de cómo y cuantos recursos
consume, cuantos objetos se crean, también podemos obtener capturas del estado del
sistema en diferentes momentos (Snapshots) y compararlos entre sí.
 Acceso a base de datos: desde el propio Netbeans podemos conectarnos a distintos
sistemas gestores de bases de datos, como pueden ser Oracle, MySql y demás, y ver las
tablas, realizar consultas y modificaciones, y todo ello integrado en el propio IDE.
 Se integra con diversos servidores de aplicaciones, de tal manera que podemos
gestionarlos desde el propio IDE: inicio, parada, arranque en modo debug, despliegues.
Entre otros podemos usar Apache Tomcat, GlassFish, JBoss, WebLogic, Sailfin, Sun Java
System Application Server.
 Es fácilmente extensible a través de plugins.

Вам также может понравиться