Kort Sammanfattning av Schack MAS



Relevanta dokument
Projektdokumentation för Othello

MinMax Algoritmen Implementation och optimering. Joakim Östlund 15 juni 2004

Handbok Knights. Översättare: Stefan Asserhäll

Sagaforms spelregler SCHACK, FIA MED KNUFF, BACKGAMMON, DOMINO

[][] Arrayer med två index

Schackledarens blad Lektion 1

Beska piller i Reykjavik

Lässtrategier för att förstå och tolka texter samt för att anpassa läsningen efter textens form och innehåll. (SV åk 1 3)

Beskrivning av Gesällprov. Fia Med Knuff. Mikael Rydmark.

Genetisk programmering i Othello

16. VOLLEY Volley är tillåtet dock inte på serven.

Programmering II (ID1019) :00-11:00

Fem schackmattelektioner för årskurserna F-3 av Fredric Hillertz och Jesper Hall

Schackborgarmärket. Lär dig hur pjäserna går! Namn:

Kungar och Skatter. 2. Ta sedan de fyra essen och blanda dem och lägg sedan slumpvis ut ett ess uppvänt i varje hörn (se fig 2).

XABCDEFGHY. xabcdefghy Vit tänker nu spela Td1-d5. Med kort notation skulle det bli T1d5.

UPPGIFT 1 V75 FIGUR 1.

Spel. 1 mot 1 på en spelplan som omfattar ca 2 m². Endast fingerslag (eller bagger) är tillåtet. Alternativt kan man tillåta tre beröringar "per lag".

Symmetrireducering av slutspelsdatabas i Schack

allt.cl Page 1 of 17 Date: torsdag 7 december 2006

Schackborgarmärket. Lär dig hur pjäserna går! Namn:

Nätverksprogrammering, EDA095

Om Veckans kluring serie 1

AI för Hive. Kungliga Tekniska Högskolan. Examensarbete inom datalogi, grundnivå (DD143X) Författare: Urban Pettersson

JavaScript del 5 Funktioner

Utförliga regler för TRAX

KALLE ANKA CUP Matchskola

CHESS & GAMES INSTRUKTIONSMANUAL

Försvar. 1. Förberedande försvarsträinng (5 eller 6 spelare). 2. Försvar mot 1:a-tempo följt av 3:e-tempo (minst 6 spelare).

Bildkälla: Pixabay. 1) Timer: konstruktion av en maskin som skall välta en aluminiumburk vid en given tidpunkt.

Om Schackma Gandhis djurdiplom

BLASKAN # 3. VECKA Den 30 oktober fyller LASK år. Tävling för schackskoledeltagare.

kl Tentaupplägg

Proposition om tillstånd för kampsportsmatcher

Två stormästarremier från Lag-EM för seniorer i Wien

AGA-regler. goforbundet.se/ Referens: AGA 1991

getsmart Grå Regler för:

Från Hasselbacken Chess Open.

Regler för: getsmart Grön

REGIONSEMIFINAL 2019 LAGEN

getsmart Lila Regler för:

Spelregler för bräde. 1 Inledning

Programmering II (ID1019) :00-11:00

PROJEKTRAPPORT EDA095 NÄTVERKSPROGRAMMERI

Steg-Vis. Innehållsförteckning

Lär datorn att spela luffarschack

Regler för Volley 2000

Välkommen till Tipspromenaden på LASS julfest 2018!

Uppgift 1 ( Betyg 3 uppgift )

Genom att följa dessa steg lär du dig snabbt att spela onlinematcher... och som du kan se är det mycket enkelt, roligt och spännande!

Jessica Vesterlund Ulrika Hultberg Åsa Dahbo Eva Samelius

Game of 40. Regler och om sidan är in princip samma sak. Det som skiljer dem åt är att de inte har samma text.

Schackborgarmärket. Matt med två torn! Namn:

Schackspelande datorer Hur fungerar de? Joakim Östlund Patrik Lindegrén 19 oktober 2004

Schack ett verktyg för vissa barn att klara skolan? Författare: Lennart Beijer

PROJEKT- PRESENTATION

AI och schack. En överblick

Datalogi, grundkurs 1

Steg 2 plus. 3 Matt i ett / Dubbelschack: A. 4 Matt i ett / Dubbelschack: B. 1) 1. Te8# 2) 1... Tb1# 3) 1... Sg3# 4) 1... Lxc3# 5) 1. Lxd5# 6) 1.

Regler för bräde. av Sten Helmfrid

2, Vad händer om en boll går sönder, tappar trycket, mitt under en poäng? (1 poäng för rätt svar)

Brainstorming Workshop. Kirsten Rassmus-Gröhn, Avd. för Rehabiliteringsteknik, Inst. för Designvetenskaper

Fyra i rad Javaprojekt inom TDDC32

Introduktion till algoritmer - Lektion 1 Matematikgymnasiet, Läsåret Lektion 1

Vilka elever blev de bästa schackspelarna efter avslutad schackundervisning? Författare: Stefan Lundgren

Curlinglaget. Alla spelare är lika viktiga och alla skall;

Regler och tolkningar Giltiga fr.o.m 1 juli 2014

läromedel JVM-mani mani läromedel

Uppgift 1 ( Betyg 3 uppgift )

Memory Det kombinatoriska spelet

Kravspecifikation. Sammanfattning. Fyra i rad Javaprojekt inom TDDC32. Version 2.0. Datum Dokumentnummer

Allmänt om Pidro. Spelets uppbyggnad

HI1024 Programmering, grundkurs TEN

Matte att räkna med. Utdrag ur Lgr11 angående ämnet matematik

Schack i skolan sommaren Schack i skolan i världen. Utvärdering i Halland. Upplägg för kursen. Upplägg för kursen

Tournament Pocket Billiard Games

Laser Maze Art nr: TF1004

Sannolikhetslära till pdf.notebook. May 04, Sannolikhetslära.

Att spela schack med sexåringar i förskoleklass

kl Tentaupplägg

Känguru 2011 Cadet (Åk 8 och 9)

Skånes Innebandyförbunds Domarkommittés allmänna direktiv för domare säsongen 2016/2017

Att utveckla den sociala samvaron genom schack Författare: Jonas Nilsson

Bridge. på 10 minuter

RIKSSEMIFINAL 2017 DOMARE

Rhino3D. Schackbräde. Krav. Några detaljer som kan vara bra att känna till:

Schack. Kurs för dig som ska lära ut till Delicatoboll. VT 2019 FÅR GÄRNA KOPIERAS

Schackborgarmärket. Matt med två torn! Namn:

A4-papper där det på varje papper står en siffra, på ett papper står det ett decimaltecken. Det kan också finnas papper med de olika räknesättens

Tor Sterner-Johansson Thomas Johansson Daniel Henriksson

Q-learning för fyra i rad. OLLE HASSEL och PETTER JANSE

Schackborgarmärket. Matt med två torn! Namn:

Handbok Othello. Clay Pradarits Utvecklare: Mario Weilguni Granskare: Lauri Watts Översättare: Stefan Asserhäll

Ungefär lika stora tal

Volleybollspelet tom 14 år med fyrmannalag och en tillåten studs. Regler

Protokoll MiniBridge

Steg-för-steg. Hur vinner du i Bridge? Budgivningen. Grundförutsättningar. 1. Räkna poäng. 2. Budgivning - del 1. Vilket par har flest poäng?

Schackborgarmärket. Regler: Schack & Matt, och Patt! Namn:

LUFFARSCHACKETS GRUNDER

Transkript:

Kort Sammanfattning av Schack MAS Krister Ljung kljung@kth.se 6th April 2003 1 Bamse 1.1 Agenter 1.1.1 Bamse Bestämmer vilket drag som skall skickas till spelplanen. Har även nio öppningar att spela dom fyra första dragen. Vilken öppning som väljs beror på hur öppningar tidigare har fungerat. Hur dessa fungerat reds ut med en utvärdering av spelplanen efter 8 drag. Resten av tiden tar Bamse drag förslag från Lilleskutt och Skalman, om dessa inte nnes slumpar Bamse fram ett drag. 1.1.2 Lilleskutt Restriktiv agent med humör. Flyttar endast bönder, om yttbara bönder inte nns yttas den pjäs som värderas lägst. Slår alltid med bonde om möjligt annars väljs slumpmässigt bondedrag. Gör inga drag om rädd eller ledsen. Humör kontrolleras av Bamse och klockan 1.1.3 Skalman Söker efter bästa drag med Alphabeta-alrgoritm, vilken alltid körs med djup 3 och kan ej inse att t.ex. slå en pjäs med ett drag skulle vara bättre än att slå en pjäs med tre drag. Arbetet påverkas av mat och sov klockan, kan vara tvungen att sova vid inopportuna tillfällen. 1.1.4 Mat och sov klockan Synkroniserar tiden. 1.2 Utvärdering av spelplanen/drag Varje pjässort har ett numeriskt värde, det sammanlagda värdet för vit och svart subtraheras och ett värde returneras, noll om ställningen är lika och positivt om vår färg har bättre poäng annars negativt. 1

2 Big Red MASchine Belief-Desire-Intention-arkitektur Kom fram till att de agenter som utnyttjar någon form av traditionella djupsökningar var de som generellt sätt lämnade de bästa dragen. 2.1 Agent Tikonov Koordineringsagent, får resterande agenter att upplämna drag, väljer drag att skicka till spelplanen, håller reda på tid. Delar in partiet i faser, baserat på tid, eller antal kvarvarande pjäser, detta påverkar vilken agents drag han väljer. Vid jämnt spel eller när det är väldigt lite tid görs dödsföraktande drag där man tar motståndarens högsta pjäs utan tanke på förluster. 2.2 Agent Krutov Letar efter den högsta pjäsen som kan slås. 2.3 Agent Fetisov Letar gaar. 2.4 Agent Makarov Bestämmer drag med minimax med alpha-beta pruning. Använder 2 utvärderingsalgoritmer, materiall värdering (baserad på vilka pjäser som nns kvar) och positionsbestäm värdering (baserad på de positioner på brädet som spelaren kontrollera med sina pjäser). 2.5 Agent Kasatanov Utvärderar brädet med hänsyn till 1) vilka rutor som kontrolleras efter ett drag och 2) vilka pjäser som kan bli slagna. Söker och utvärderar ner till djup 2 (bredden först sökning). 3 Chemical X ChessAgent 3.1 ChessPlayer Sköter schackspelandet. Generar alla möjliga drag från det nuvarande läget och skickar dessa till utvärderingsagenterna. Dessa utvärderar dragen och skickar tillbaka resultaten, varpå ChessPlayer agenten väljer ett drag. Layered arkitektur, 3 layers, 1) hantering av miljön (schackbrädet), 2) planering av när drag skall utförs, 3) kommunikation med utvärderingsagenterna 3.2 Utvärderingsagenter: PieceCounterEvaluator och VulnerabilityEvaluator Utvärderar de schackbrädespositioner som är resultat av tänkbara drag. Reaktiv design, väntar på ett utvärderingsmeddelanden från Chessplayer, utvärder och 2

skickar tillbaka ett resultat. PieceCounterEvaluator räknar antalet pjäser och typ. VulnerabilityEvaluator utvärderar hur många av den egna färgens pjäser som i nästa drag skulle kunna plockas. 4 ChessMASter Feodal-lik beslutsfattning. Förslag på drag skickas till Kungen som sedan tar ett beslut. Horizontally layered agents Men varje pjäs är som en BDI-agent. Feodalsamhälle som spel metafor, vissa pjäser (kung, drottning, springare, etc) har undersåtar och alla har personliga attribut, intentioner, relationer. Vid spel gör alla pjäser en bedömning av möjliga drag och skickar sitt bästa drag till Kungen som utvärderar villket drag som är bäst och fattar beslut. 5 Green 2 lager - ett beslutsfattande lager och ett draggenererande lager 5.1 WebschackdatorAgent Söker efter bra drag på en schackdator via Internet. 5.2 ÖppningsdragsAgent Olika uppsättningar av öppningsdrag 5.3 SlumpdragsAgent Genererar alla möjliga drag i det aktuella läget och väljer slumpmässigt ett av dessa. 5.4 ChefsAgent Väljer ett av dom föreslagna dragen. Dragen som kommer ifrån de olika agenterna har olika hög prioritet beroende på den genererande agenten och tiden av matchen som gått. 6 JDKAS 6.1 GeneralAgent Centraliserad multiagentplanering. Generalagenten tar in drag från strategiagenterna (se nedan), dessa är viktade utav strategiagenterna själva och generalagenten väljer det drag som är viktat högst. 6.2 Aggro Letar drag som kan ta så mycket av motståndarens pjäser som möjligt. Drag vägs med motståndarpjäsens värde och den potentiella förlusten. Föreslår era drag under samma tur. 3

6.3 Deo Använder minimax för att hitta drag som leder till minst förlust. 6.4 Schackis Letar efter drag som kan ställa motståndarkungen i schack utan att själv bli hotad. Skickar först odkända draget till Generalagenten. 6.5 Stratego Hittar drag som kan hota motståndarens pjäser (utom kungen) utan att själv bli hotad. 6.6 Startis Agent för att föreslå bra öppningar. Försöker först göra skolmatt om vit, eller förhindra detta om svart. Därefter yttar den ut bönder i ett aggressivt mönster. Fortätter föreslå drag hela spelet men dessa vägs lågt efter starten. 7 JKSD 7.1 Oensiv Agent Läser in schackbrädet, tar fram samtiliga tillåtna drag. Plockar fram det drag som den tycker är bäst, dvs det som slår högst rangordnade motståndrapjäs. Skickar vidare detta drag till den defensiva agenten. 7.2 Defensiv Agent Tar ett drag från den oensiva agenten och kollar om den pjäs som föreslås att yttas på löper risk för att bli slagen i motståndarens nästkommande drag. Om motståndarpjäsen är av högre rang än en pjäs som riskeras att bli slagen (eller ingen pjäs kan bli slagen) så godkänns draget och utförs. Om draget ej godkänns får slumpagenten ta över. 7.3 Slumpagent Läser in schackbrädet och slumpar fram ett av de tillåtna dragen och utför detta. 8 KTHMASters Försöker att ha ett så öppet system som möjligt med avancerade kommunikationsmöjligheter där agenter kan göra drag, bedöma drag, rösta ut varandra, med mera. Systemet har fyra (i princip) oberoende typer av agenter som kan kombineras i olika laguppställningar 4

8.1 Agent1 Utvärderar de möjliga dragen endast utifrån nuvarande positioner. 8.2 OpeningAgent Plockar drag ur en databas, om den hittar ett lämpligt drag ur sin databas så gör den detta så fort som möjligt. 8.3 SimpleAgent Hämtar drag från ett schackprogram på nätet vilket använder sig av alphabetasökning och attacksökning. Gör sitt drag i slutet av spelomgången. Försöker rösta ut andra agenter som gör sina drag tidigt. 8.4 AlphaBetaAgnet Använder en enkel och inte djup alpha-betasökning. Har en tillitslista över andra agenter som påverkar hur den röstar ut och in på andra agenter. Tillitslistan påverkas av hur agenternas föreslagna drag jämförs med AlphaBetaAgentens föredragna drag. 9 MALD 6 agenter röstar om vilket drag som skall utföras. En ControllerAgent initierar röstning och kontrollerar resultatet och kommunicerar vidare resultatet till den utförande Communicator. De fem röstande agenterna har implementerats med en alphabeta algoritm och har en utvärderingsfunktion med vikter som går att ställa in dynamiskt under körning. 9.1 ControllerAgent Initierar röstning och kontrollerar resultatet. 9.2 Standard Agent alphabeta sökning, värderar alla fördelar lika. 9.3 materiel Agent Värderar schackbrädets materiel (pjäserna på brädet?) 9.4 Bonde Agent Värderar högt hur bönderna används på spelplanen 9.5 Startup Agent Försöker snabbt få fram löpare och springare till centrala positioner 5

9.6 Oensiva agenter Två st, rycker fram mot motståndarens kung med torn, springare, och damen 10 Reykavik 72 10.1 Supervisor Samlar in drag från övriga agenter och väljer det med högst värde. Ansvarar för öppningsdragen. Skickar bästa draget till servern innan tiden gått ut. Skickar meddelande om när agenterna skall börja arbeta. 10.2 MovePicker Föreslår drag som slår motståndarens pjäser 10.3 KingChecker Kontroller Supervisorns drag så att inte kungen hamnar i schack 10.4 NoSlump Förslår drag så att pjäsen som skall yttas inte ställs på en hotad position 10.5 Protecter Föreslår drag som skyddar andra pjäser 11 SchackMatt 11.1 Samordningsagent Till samordningsagenten skickas förslag med en bedömning om hur bra de är ifrån utvärderingsagenten. Sloclar det bästa dragförslaget när tiden börjar gå ut. Drag viktas dessutom beroende på vem de kommer ifrån. 11.2 Utvärderingsagent Bedömer dragförslag från de andra agenterna. Bedömningen består av ett heltal som representerar "godhetsvärdet". Detta skickas vidare till samordningsagenten. Utvärdering består främst av att räkna pjäsbalansen mellan svart och vitt men också andra parametrar som hur mycket rörelsefrihet torn och löpare har och hur bönder står uppställda. 11.3 Dragförslagagenter Föreslår giltiga drag, som utvärderas av utvärderingsagenten som skickar vidare dessa till samordningsagenten. 1. Slumpis generar alla möjliga drag och väljer ett på måfå. 6

2. Aggro generar alla möjliga drag och föreslår drag som kan slå en motståndarpjäs 3. Deo letar efter den högsta pjäsen som är hotad och föreslår en föryttning 4. MTD alpha-betasökning med MTD(f) algoritmen 5. Delorie hämtar dragförslag från ett webbaserat schackspel. 6. Opener innehåller hårdkodade öppningsekvenser 7