ESTRATEGIAS DE PARALELIZACI(cid:211)N DE HEUR˝STICAS PARA EL JUEGO DE AJEDREZ Eduardo Bouza Cubo, Daniel GonzÆlez Marcos, Jorge PØrez Barrio FACULTAD DE INFORM`TICA UNIVERSIDAD COMPLUTENSE DE MADRID SISTEMAS INFORM`TICOS Curso 2013-2014 Directores: JosØ Ignacio G(cid:243)mez PØrez Christian Tenllado Van Der Reijden Autorizaci(cid:243)n de difusi(cid:243)n Los abajo (cid:28)rmantes, matriculado/a en Sistemas InformÆticos de la Facultad de Infor- mÆtica, autorizan a la Universidad Complutense de Madrid (UCM) a difundir y utilizar con (cid:28)nes acadØmicos, no comerciales y mencionando expresamente a su autor el presente Trabajo Fin de Carrera: (cid:19)ESTRATEGIAS DE PARALELIZACI(cid:211)N DE HEUR˝STICAS PARA EL JUEGO DE AJEDREZ(cid:20), realizado durante el curso acadØmico 2013-2014 bajo la direcci(cid:243)n de JosØ Ignacio G(cid:243)mez y Christian Tenllado, y a la Biblioteca de la UCM a depositarlo en el Archivo Institucional E-Prints Complutense con el objeto de incrementar la difusi(cid:243)n, uso e impacto del trabajo en Internet y garantizar su preservaci(cid:243)n y acceso a largo plazo. Madrid, 15 de agosto de 2014 Eduardo Bouza Cubo Daniel GonzÆlez Marcos Jorge PØrez Barrio Agradecimientos Eduardo: -Agradecer a los directores del proyecto, JosØ Ignacio G(cid:243)mez y Christian Tenllado por su gran compromiso con el proyecto, gu(cid:237)a y profesionalidad. -A mi familia por su apoyo, Ænimo y ayuda constante durante toda mi vida. -Y a mis amigos y pareja que siempre estÆn ah(cid:237) para lo que haga falta y hacen que cada d(cid:237)a sea un d(cid:237)a œnico. 3 Daniel: -A mis padres, que me han apoyado mÆs allÆ de lo razonable este œltimo aæo. Por todos los viajes de ida y vuelta en horas intempestivas en los que me han acercado al trabajo; por aguantar mi estrØs y mal humor ocasional, y por todos las palabras de templanza sobre las relaciones personales. Especial menci(cid:243)n a mi padre en lo acadØmico y profesional, por ser un modelo de Øxito a travØs del esfuerzo a pesar de la adversidad, de quien siempre me sentirØ orgulloso. -A nuestros directores, Nacho y Christian, por su inestimable conocimiento, esfuerzo, gu(cid:237)a,ysuinterØsenconocerminuciosamentelassingularidadesdelacomputaci(cid:243)ndeajedrez. -Al muy insigne don Juan Miguel Lacruz Camblor, estudiante de Grado en Ingenier(cid:237)a InformÆtica, por las llamadas y los ratos de dudoso esparcimiento prestado charlando sobre el proyecto, por su interØs en el mismo, y por su incalculable aportaci(cid:243)n como ajedrecista. -A Manuel SÆnchez PØrez, estudiante de Grado en Ingenier(cid:237)a InformÆtica, y mÆs cono- cido por toda la facultad como ’Manu++’,’Seæor++’,o simplemente ’++’, por su valioso asesoramiento en las tentativas de implementaci(cid:243)n en C++. Sin duda, merece todos y cada uno de sus apelativos. Te deseo (y auguro) el mejor y mÆs brillante de los futuros. -A mis amigos, por la paciencia mostrada todo este aæo cuando les aburr(cid:237)a con los pormenores del proyecto. -A Jorge PØrez Barrio, ’Coque’, amigo con quien he podido sobrellevar la incertidumbre, la frustraci(cid:243)n y los malos momentos este aæo, as(cid:237) como todos los anteriores. 4 Jorge: -A mi Madre, en primer lugar, por ser mi baluarte. Porque detrÆs de todo lo que soy y he hecho estÆ ella. Por 25 aæos demostrando sin descanso que Madre como la m(cid:237)a no existe otra igual. Por una devoci(cid:243)n que ni yo muchas veces comprendo, por esto y mucho mÆs, te quiero Madre. -A mi Padre, porque cada consejo y recomendaci(cid:243)n suya ha sido un acierto existoso en mi vida. A un padre en el que me veo re(cid:29)ejado aunque no tanto como desear(cid:237)a. Por notar como pone todo su empeæo y coraz(cid:243)n en todo lo que a m(cid:237) se re(cid:28)ere y por otras muchas cosas, te quiero Padre. -A mi hermano, donde reside una (cid:28)gura ejemplar para mi desde mis comienzos a la vez que mi amigo mÆs cercano. Agradecerte que a pesar de que pasan los aæos me siento como cuando Øramos niæos, eso para m(cid:237) te hace indispensable. -A ’la Abuela’, en honor a una personalidad y actitud deslumbrante ante la vida. Por esa vitalidad y energ(cid:237)a que hace que el tØrmino abuela me resulte insu(cid:28)ciente. Porque desde que tengo memoria he tenido la suerte de que estuvieras conmigo, abuela, tu nieto te quiere. -Al Primi, en honor y agradecimiento a la mÆs extraordinaria persona que he conocido. Por ser abuelo, amigo, arquitecto y constructor de mi maravillosa familia. Tu amiguete no te olvida. -A BelØn, el (cid:28)chaje galÆctico que completa mi familia. Porque a lo bueno uno se acos- tumbra rÆpido tengo la sensaci(cid:243)n de que eres de mi familia desde siempre. -Al t(cid:237)o Carlos, por regalarme todos los aæos un puæado de buenos momentos. -A la t(cid:237)a Carmen y la t(cid:237)a Saro, por todos los aæos de ayuda y apoyo. -A mi gran amigo ’Karras’, porque todo siga igual que hasta ahora. -A mis amigos del barrio, miembros del Co(cid:27)ee-Pitt, amigos de fdi, al `guilas de Mora- talaz, amigos del erasmus y compaæeros de TPVs de Banesto, por hacer que una vista atrÆs de estos œltimos aæos s(cid:243)lo me traiga buenos momentos. -A nuestros directores de proyecto, subrayando cada una de las palabras de agradeci- miento de mis compaæeros y recalcando una gran labor y una interminable paciencia. -A Daniel GonzÆlez Marcos, amigo y compaæero desde los comienzos en la facultad hasta el mism(cid:237)simo œltimo d(cid:237)a. 5 ˝ndice general Glosario 1 1. Introducci(cid:243)n 2 2. Trabajos anteriores y estado del arte 4 3. Arquitectura de comunicaci(cid:243)n cliente-servidor 7 3.1. Arquitectura de comunicaci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3.2. Arquitectura del servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2.1. Arquitectura de la base de datos . . . . . . . . . . . . . . . . . . . . . 12 4. Motor de juego 15 4.1. Motor de juego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.1.1. Keyboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 4.1.2. Piece . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 4.1.3. Square . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2. Interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 4.2.1. Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2.2. Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 4.3. Generadores de movimientos . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5. Inteligencia arti(cid:28)cal 23 6. Paralelizaci(cid:243)n 30 6.1. Introducci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.2. Entorno Experimental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 6.3. Estrategias de paralelizaci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.3.1. Introducci(cid:243)n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6.3.2. Interfaces de Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 6.3.3. Grano grueso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6.3.4. Grano (cid:28)no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 7 6.3.5. Caso Mixto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 6.4. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.4.1. Estudio te(cid:243)rico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.4.2. Impacto de la paralelizaci(cid:243)n en el tiempo de ejecuci(cid:243)n . . . . . . . . . 38 6.5. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 6.6. Tablas de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 7. Conclusiones 45 A. Manual de uso del aplicativo grÆ(cid:28)co 48 B. Autor(cid:237)a del presente documento 50 8
Description: