机器人编程入门(陈小平) 2012夏  课程号:011M10
2012夏  课程号:011M10
10.0(1人评价)
10.0(1人评价)
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:超好
  • 收获大小:很多
选课类别:未知 教学类型:未知
课程类别:全校公修 开课单位:计算机科学与技术系
课程层次:全校通修   学分:2.0
课程主页:暂无(如果你知道,劳烦告诉我们!)
排序 学期

评分 评分 1条点评

boj 2012夏
  • 课程难度:中等
  • 作业多少:中等
  • 给分好坏:超好
  • 收获大小:很多
  • 难度:中等
  • 作业:中等
  • 给分:超好
  • 收获:很多

这门课名为《机器人编程入门》,事实上是在讲智能机器人的基础理论——知识表达与推理、自然语言处理等。很多人选了这个暑期学期的课,是为了参加 Robogame 机器人比赛的,结果发现完全不是讲这个的。

知识表达用的是命题逻辑,推理方法用的是 Answer Set Programming,一种类似 Prolog 的逻辑编程语言。 https://en.wikipedia.org/wiki/Answer_set_programming

作业是用 clingo 推理器来解演绎推理(deductive reasoning)、数独、多米诺骨牌覆盖问题、拉姆塞问题。我还加做了四色问题、八皇后问题、最大团问题、中国邮递员问题等。把这些 NP-hard 问题映射到命题逻辑之后,clingo 都可以在可接受的时间内得到解,比 C 语言写的暴搜 + 剪枝快多了。当然针对上述经典问题,都有特定的算法可以加速搜索,这种特殊算法肯定是比 clingo 快的。然而逻辑编程是一种解决类 SAT 问题的通用解法,对于并不那么规则的现实中的知识推理问题,是很有用的。

代码: https://github.com/bojieli/answer-set-assignment

自然语言处理部分讲的是经典的基于规则的自然语言语法树分析。就是编译原理里面词法分析、语法分析那一套。作业是写一个解析几种简单英文句子语法树的词法和语法分析器。

代码: https://git.ustclug.org/boj/natural-language-parser/tree/master

如果以后这门课程仍然开的话,选修前建议先修数理逻辑和编译原理。

1 0 复制链接

陈小平

教师主页: 戳这里

其他老师的「机器人编程入门」课

吉建民, 宋鹏 10.0 (1) 2014夏

陈小平老师的其他课

数理逻辑 8.5 (30) 2020春 2019春...
人工智能与技术伦理 6.8 (8) 2023秋
人工智能与技术伦理 5.9 (10) 2022秋 2021秋...
人工智能基础 2008秋 2006秋
仿真机器人足球 2008秋 2007秋...
数理逻辑 2014春 2013春
机器人足球(初级班) 2004秋 2004春...
机器人足球(提高班) 2004春 2003秋...
行动推理(一) 2011秋 2010秋...
计算机导论 2010秋
行动推理(一) 2011秋 2010秋...
多智能体系统前沿 2020秋 2019秋...