智能體大賽與平臺開發

清華大學計算機系

講者介紹

  • 宋方睿,i@maskray.me,http://maskray.me
  • 算法與數據結構、函數式編程、自然語言處理、並行計算、Linux系統管理

什麼是智能體大賽

  • 1996年第一届智能体大赛
  • 清華大學五大賽事之一
  • 選手編寫AI控制遊戲中角色
  • 題目有深度和廣度
  • 趣味性,對抗性
  • 面向不同年級、不同專業、不同學校

歷屆賽事回顧

2000 - Robocup

2002, 2003 - GreedySnake

2005 - Bomberman

2009 - 奪寶奇兵

智能體系列賽

  • 智能體大賽的附屬賽事
  • 只設置網絡賽
  • 趣味性更多
  • AI編寫容易,门槛低
  • 吸引更多的程序設計入門者參加

Pacman

Pacman

  • 創意源於經典遊戲Pacman
  • 雙人遊戲,各控制一個Pacman
  • 吃豆子
  • 躲避鬼
  • 魔法豆
  • 擺放地雷

第二場離線循環賽

  • 2012年11月24日23:59截止

決賽

智能體平臺設計

  • 網站
  • 播放器
  • 戰鬥巡洋艦
  • AI調度器、AI執行器
  • 遊戲邏輯

網站

  • Ruby on Rails

戰鬥巡洋艦

  • Python
  • 每個戰鬥巡洋艦負責一個遊戲
  • 戰鬥巡洋艦向網站發起鏈接(receiver initiated),網站確認該遊戲可用

AI調度器

  • RPC
  • 戰鬥巡洋艦找到可用AI調度器
  • 負載較小時採用sender initiated模式

AI執行器

  • 包裹AI程序
  • 限制系統調用、CPU時間、虛擬內存等

遊戲邏輯

  • 接納兩個AI執行器
  • 擴展:人機對戰
  • 可以在AI執行器層面實現,遊戲邏輯無需瞭解其實現細節
  • 擴展:關卡模式
  • 仍然在AI執行器層面實現

數據

  • 通用
    • User
    • Accounts9 OAuth2認證
  • 遊戲相關
    • Player
    • Ai
    • Map
    • Battle
    • Replay

拓展

  • Online Judge 的功能超集

本屆系列賽Pacman相關

Pacman播放器

  • Node.js
  • CoffeeScript
  • 兩種動畫技術:DOM操縱、CSS3 transition

選手SDK

  • Linux i386、amd64
  • Mac
  • Win32

謝謝大家