กลับไปหน้าบทความ

อ่าน 5 นาที

ภาษาของคำอธิบายเกม

ภาษาอธิบายเกม (Game Description Language หรือ GDL) เป็น ภาษาการเขียนโปรแกรมเชิงตรรกะ เฉพาะทางที่ออกแบบโดย ไมเคิล เจเนเซอเรธ เป้าหมายของ GDL คือการช่วยให้สามารถพัฒนา เอเจนต์ AI...

ภาษาของคำอธิบายเกม

ภาษาอธิบายเกม (Game Description Language หรือ GDL) เป็น ภาษาการเขียนโปรแกรมเชิงตรรกะเฉพาะทางที่ออกแบบโดยไมเคิล เจเนเซอเรธเป้าหมายของ GDL คือการช่วยให้สามารถพัฒนาเอเจนต์ AIที่สามารถเล่นเกมทั่วไปได้ GDL เป็นส่วนหนึ่งของโครงการเล่นเกมทั่วไป (General Game Playing Project) ที่มหาวิทยาลัยสแตนฟอร์ด GDL เป็นเครื่องมือสำหรับแสดงความซับซ้อนของกฎและพลวัตของเกมในรูปแบบที่ ระบบ ปัญญาประดิษฐ์ (AI) เข้าใจได้ ผ่านการผสมผสานระหว่างโครงสร้างเชิงตรรกะและหลักการ เชิงประกาศ

ในทางปฏิบัติ GDL มักถูกใช้ในการแข่งขันและการวิจัยเกี่ยวกับการเล่นเกมทั่วไป ในบริบทเหล่านี้ GDL ถูกใช้เพื่อกำหนดกฎของเกมที่คาดว่าตัวแทน AI จะเล่น นักพัฒนาและนักวิจัย AI ใช้ GDL เพื่อสร้างอัลกอริทึมที่สามารถเข้าใจและมีส่วนร่วมกับเกมตามกฎของเกม การใช้ GDL ช่วยให้สามารถพัฒนาตัวแทน AI ที่ปรับตัวได้สูง สามารถแข่งขันได้ในสถานการณ์ที่หลากหลาย

วัตถุประสงค์ของ GDL

Genesereth อ้าง ในบทความในNew Scientistว่าถึงแม้Deep Blueจะสามารถเล่นหมากรุกได้ใน ระดับ แกรนด์มาสเตอร์แต่ก็ไม่สามารถเล่นหมากฮอสได้เลย เพราะเป็นโปรแกรมเล่นเกมเฉพาะทาง[ 1 ]ทั้งหมากรุกและหมากฮอสสามารถอธิบายได้ใน GDL ซึ่งทำให้สามารถสร้างโปรแกรมเล่นเกมทั่วไปที่สามารถเล่นได้ทั้งสองเกมนี้ และเกมอื่นๆ ที่สามารถอธิบายได้โดยใช้ GDL

ข้อกำหนด

ไวยากรณ์

GDL เป็นรูปแบบหนึ่งของDatalogและไวยากรณ์ส่วนใหญ่เหมือนกัน โดยปกติจะระบุในรูปแบบสัญกรณ์คำนำหน้า ตัวแปรเริ่มต้นด้วย?. [ 2 ]

คำสำคัญ

ต่อไปนี้คือรายการคำสำคัญใน GDL พร้อมคำอธิบายสั้น ๆ เกี่ยวกับหน้าที่ของคำเหล่านั้น:

distinct
เงื่อนไขนี้ใช้เพื่อกำหนดว่าคำสองคำนั้นต้องแตกต่างกันทางไวยากรณ์
does
เงื่อนไขดังกล่าวหมายความว่าผู้เล่น (หรือบทบาท ) เป็นผู้ทำการเคลื่อนไหวในสถานะเกมปัจจุบัน(does?r?m)?r?m
goal
述語 (predicate) ใช้เพื่อกำหนดค่าเป้าหมาย(โดยปกติจะเป็นจำนวนเต็มบวกระหว่าง 0 ถึง 100) สำหรับบทบาทในสถานะปัจจุบัน(goal?r?n)?n?r
init
ประโยคนี้กล่าวถึงข้อเท็จจริงเกี่ยวกับสถานะเริ่มต้นของเกม
legal
คำกริยาบ่งชี้ว่าเป็นการกระทำที่อนุญาตได้สำหรับบทบาทในสถานะปัจจุบัน(legal?r?m)?m?r
next
ประโยคนี้กล่าวถึงข้อเท็จจริงเกี่ยวกับสถานะเกมถัดไป
role
述语นี้ใช้สำหรับเพิ่มชื่อผู้เล่น
terminal
ประโยคเงื่อนไขนี้หมายความว่าสถานะปัจจุบันเป็นสถานะสุดท้ายของเกม
true
ประโยคนี้กล่าวถึงข้อเท็จจริงเกี่ยวกับสถานะปัจจุบันของเกม

กฎ

คำอธิบายเกมใน GDL จะให้กฎที่สมบูรณ์ซึ่งกำหนดผู้เล่นของเกม สถานะเริ่มต้น การเคลื่อนไหวที่ถูกต้อง วิธีการอัปเดตสถานะของเกม วิธีการจบเกม และวิธีการตัดสินผู้ชนะ

ผู้เล่น

ข้อเท็จจริงที่กำหนดบทบาทในเกม ตัวอย่างเช่น เกมโอเอ็กซ์ สำหรับผู้เล่นสองคน สามารถกำหนดผู้เล่นใน GDL ได้ด้วย (role xplayer)และ(role oplayer)

สถานะเริ่มต้น

กฎที่ประกอบด้วยข้อเท็จจริงทั้งหมดเกี่ยวกับสถานะเริ่มต้นของเกม ตัวอย่างต่อไปนี้อธิบายกระดานโอเอ็กซ์ขนาดสามคูณสามที่ว่างเปล่า โดยผู้เล่น xเป็นผู้เริ่มต้นเดิน:

( init ( cell 1 1 blank )) ... ( init ( cell 3 3 blank )) ( init ( control xplayer ))

กฎที่อธิบายถึงการเคลื่อนไหวแต่ละครั้งที่ผู้เล่นสามารถทำได้ โดยอิงจากเงื่อนไขของเกมในขณะนั้น ผู้เล่นเกมโอเอ็กซ์สามารถทำเครื่องหมายในช่องได้หากช่องนั้นว่างอยู่ และเป็นตาของผู้เล่นที่จะเดิน ใน GDL:

( <= ( legal ?player ( mark ?m ?n )) ( true ( cell ?m ?n blank )) ( true ( control ?player )))

อัปเดตสถานะเกม

กฎที่อธิบายรายละเอียดทั้งหมดเกี่ยวกับสถานะถัดไปโดยสัมพันธ์กับสถานะปัจจุบันและการเคลื่อนไหวที่ผู้เล่นได้กระทำ ตัวอย่างเช่น:

( <= ( next ( cell ?m ?n x )) ( does xplayer ( mark ?m ?n ))) ( <= ( next ( cell ?m ?n o )) ( does oplayer ( mark ?m ?n )))

การเลิกจ้าง

กฎที่อธิบายเงื่อนไขที่ทำให้เกมจบลง ในเกมโอเอ็กซ์ เกมจะจบลงหากผู้เล่นฝ่ายใดฝ่ายหนึ่งทำเครื่องหมายสามอันในแนวเดียวกัน หรือไม่มีช่องว่างเหลืออยู่แล้ว:

( <= เทอร์มินัล( บรรทัดx )) ( <= เทอร์มินัล( บรรทัดo )) ( <= เทอร์มินัลไม่เปิดบอร์ด)

เป้าหมายสถานะ

ค่าต่างๆ ที่ใช้กำหนดว่าผู้เล่นคนใดจะเป็นผู้ชนะในสถานะสุดท้าย ตัวอย่างเช่น:

( <= ( goal xplayer 100 ) ( line x )) ( <= ( goal oplayer 0 ) ( line x ))

ส่วนขยาย

จีดีแอล-ไอ

GDL สามารถอธิบายเกมจำกัดที่มีจำนวนผู้เล่นไม่จำกัดได้ อย่างไรก็ตาม GDL ไม่สามารถอธิบายเกมที่มีองค์ประกอบของโอกาส (เช่น การทอยลูกเต๋า ) หรือเกมที่ผู้เล่นมีข้อมูลไม่ครบถ้วนเกี่ยวกับสถานะปัจจุบันของเกม (เช่น ในเกมไพ่ หลายเกม ไพ่ของฝ่ายตรงข้ามจะไม่ปรากฏให้เห็น) ส่วนขยายของ GDL ที่เรียกว่าGame Description Language for Incomplete Information Games ( GDL-II ) ขยายภาษาด้วยคำหลักสองคำ คือseesและrandomซึ่งช่วยให้สามารถอธิบายองค์ประกอบของโอกาสและข้อมูลที่ไม่ครบถ้วนได้[ 3 ]คำสั่งหมายความว่าบทบาทรับรู้ในสถานะเกมถัดไปค่าคงที่ หมายถึงผู้เล่นที่กำหนดไว้ล่วงหน้าซึ่งเลือกการเคลื่อนไหวแบบสุ่ม (sees?r?p)?r?prandom

ต่อไปนี้เป็นตัวอย่างจากคำอธิบายเกมไพ่เท็กซัสโฮลด์เอ็ม ใน GDL-II :

( <= ( เห็น?player ?card ) ( สุ่ม( deal_face_down ?player ?card ))) ( <= ( เห็น?r ?card ) ( role ? r ) ( สุ่ม( deal_river ? card )))

จีดีแอล-III

Michael Thielscher ยังได้สร้างส่วนขยายเพิ่มเติมGDL-IIIซึ่งเป็น GDL ทั่วไปที่มีข้อมูลและการตรวจสอบภายใน ที่ไม่สมบูรณ์ ซึ่งสนับสนุนการกำหนดเกมเชิงความรู้ — เกมที่มีลักษณะเฉพาะด้วยกฎที่ขึ้นอยู่กับความรู้ของผู้เล่น[ 4 ]

วิธีการนำเสนอเกมแบบอื่นๆ

ในทฤษฎีเกม แบบคลาสสิก เกมสามารถกำหนดรูปแบบอย่างเป็นทางการได้ใน รูปแบบ ที่ขยายและ รูป แบบปกติสำหรับทฤษฎีเกมแบบร่วมมือเกมจะถูกแสดงโดยใช้ฟังก์ชันลักษณะเฉพาะ เกมบางประเภทอนุญาตให้มีการแสดงแบบพิเศษในขนาดที่เล็กกว่า ซึ่งเรียกอีกอย่างว่าเกมแบบกระชับ เมื่อเวลาผ่านไป รูปแบบ และภาษา อื่นๆสำหรับการแสดงประเภทเกมที่แตกต่างกันได้รับการพัฒนาขึ้น ส่วนหนึ่งเนื่องมาจากความต้องการของการวิจัยแบบสหวิทยาการ [ 5 ] การแสดงทางเลือกเหล่านี้บางส่วนรวมถึงแง่มุมที่เกี่ยวข้องกับเวลา:

ชื่อ ปี จัดทำเป็นทางการด้วย ประเภทเกมแง่มุมของเวลา
เกมการจราจรติดขัด[ 6 ]พ.ศ. 2516 ฟังก์ชันกลุ่มย่อยของเกมที่มีผู้เล่น n คน ที่มีการเคลื่อนไหวพร้อมกันเลขที่
รูปแบบลำดับ[ 7 ]พ.ศ. 2537 เมทริกซ์เกมสองผู้เล่นที่มีข้อมูลไม่สมบูรณ์เลขที่
เกมจับเวลา[ 8 ] [ 9 ]พ.ศ. 2537 ฟังก์ชัน เกมสำหรับผู้เล่นสองคน ใช่
กาล่า[ 10 ]พ.ศ. 2540 ตรรกะเกมผู้เล่น n คนที่มีข้อมูลไม่สมบูรณ์เลขที่
เกมกราฟิก[ 11 ] [ 12 ]2001 กราฟฟังก์ชัน เกมที่มีผู้เล่น n คน การเคลื่อนไหวพร้อมกันเลขที่
เกมที่มีผลกระทบในท้องถิ่น[ 13 ]2003 ฟังก์ชัน กลุ่มย่อยของเกมที่มีผู้เล่น n คน ที่มีการเคลื่อนไหวพร้อมกันเลขที่
เกม Petri nets [ 14 ]2006 ตาข่ายเพทรี เกมผู้เล่น n คน แบบกำหนดผลลัพธ์ได้ การเดินหมากพร้อมกันเลขที่
เกมต่อเนื่อง[ 15 ]2007 ฟังก์ชัน กลุ่มย่อยของเกมสองผู้เล่นที่มีข้อมูลไม่สมบูรณ์ ใช่
ปฏิสัมพันธ์เชิงกลยุทธ์ของเครือข่าย Petri [ 16 ] [ 17 ]2008 ตาข่ายเพทรี เกมผู้เล่น n คนที่มีข้อมูลไม่สมบูรณ์ใช่
เกมกราฟการกระทำ[ 18 ]2012 กราฟ ฟังก์ชัน เกมที่มีผู้เล่น n คน การเคลื่อนไหวพร้อมกันเลขที่

แอปพลิเคชัน

เอกสารปี 2016 "อธิบายอัลกอริทึมหลายระดับที่รวบรวมคำอธิบายเกมทั่วไปใน GDL ลงในตัวให้เหตุผลที่เหมาะสมที่สุดในภาษาระดับต่ำ " [ 19 ]

เอกสารปี 2017 ใช้ GDL เพื่อจำลองกระบวนการไกล่เกลี่ยข้อพิพาทระหว่างสองฝ่าย และนำเสนออัลกอริทึมที่ใช้ข้อมูลที่มีอยู่เพื่อดำเนินการดังกล่าวอย่างมีประสิทธิภาพ[ 20 ]

ดูเพิ่มเติม

  • เอกสารข้อกำหนดภาษาคำอธิบายเกม (Game Description Language Specification) ถูกเก็บถาวรเมื่อวันที่ 12 เมษายน 2556 ที่Wayback Machine
  • บทความวิชาการที่ผ่านการตรวจสอบโดยผู้ทรงคุณวุฒิ เกี่ยวกับการแนะนำ GDL-II
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Game_Description_Language&oldid=1330450745 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ภาษาของคำอธิบายเกม

ภาษาอธิบายเกม (Game Description Language หรือ GDL) เป็น ภาษาการเขียนโปรแกรมเชิงตรรกะ เฉพาะทางที่ออกแบบโดย ไมเคิล เจเนเซอเรธ เป้าหมายของ GDL คือการช่วยให้สามารถพัฒนา เอเจนต์ AI...

วัตถุประสงค์ของ GDL

Genesereth อ้าง ในบทความใน New Scientist ว่าถึงแม้ Deep Blue จะสามารถเล่นหมากรุกได้ใน ระดับ แกรนด์มาสเตอร์ แต่ก็ไม่สามารถเล่น หมากฮอส ได้เลย เพราะเป็นโปรแกรมเล่นเกมเฉพาะทาง [ 1 ] ทั้งหมากรุกและหมากฮอสสามารถอธิบายได้ใน GDL...

ไวยากรณ์

GDL เป็นรูปแบบหนึ่งของ Datalog และ ไวยากรณ์ ส่วนใหญ่เหมือนกัน โดยปกติจะระบุใน รูปแบบสัญกรณ์คำนำหน้า ตัวแปร เริ่มต้นด้วย ? . [ 2 ]

คำสำคัญ

ต่อไปนี้คือรายการ คำสำคัญ ใน GDL พร้อมคำอธิบายสั้น ๆ เกี่ยวกับหน้าที่ของคำเหล่านั้น: