Automated planning and scheduling: Difference between revisions

Content deleted Content added
m a partially
Citation bot (talk | contribs)
Add: authors 1-1. Removed parameters. Some additions/deletions were parameter name changes. | Use this bot. Report bugs. | #UCB_CommandLine
Line 2:
{{More footnotes|date=January 2012}}
{{Artificial intelligence|Major goals}}
'''Automated planning and scheduling''', sometimes denoted as simply '''AI planning''',<ref>{{Citation | last1=Ghallab | firstfirst1=Malik | last2=Nau | first2=Dana S. | last3=Traverso | first3=Paolo | title=Automated Planning: Theory and Practice | publisher=[[Morgan Kaufmann]] | year=2004 | url=http://www.laas.fr/planning/ | isbn=1-55860-856-7 | access-date=2008-08-20 | archive-date=2009-08-24 | archive-url=https://web.archive.org/web/20090824103124/http://www.laas.fr/planning/ | url-status=live }}</ref> is a branch of [[artificial intelligence]] that concerns the realization of [[strategy|strategies]] or action sequences, typically for execution by [[intelligent agent]]s, [[autonomous robot]]s and [[unmanned vehicle]]s. Unlike classical [[control system|control]] and [[Statistical classification|classification]] problems, the solutions are complex and must be discovered and optimized in multidimensional space. Planning is also related to [[decision theory]].
 
In known environments with available models, planning can be done offline. Solutions can be found and evaluated prior to execution. In dynamically unknown environments, the [[strategy]] often needs to be revised online. Models and policies must be adapted. Solutions usually resort to iterative [[trial and error]] processes commonly seen in [[artificial intelligence]]. These include [[dynamic programming]], [[reinforcement learning]] and [[combinatorial optimization]]. Languages used to describe planning and scheduling are often called [[action language]]s.
Line 105:
Deterministic planning was introduced with the [[Stanford Research Institute Problem Solver|STRIPS]] planning system, which is a hierarchical planner. Action names are ordered in a sequence and this is a plan for the robot. Hierarchical planning can be compared with an automatic generated [[Behavior tree (artificial intelligence, robotics and control)|behavior tree]].<ref>{{cite journal |title=Building a Planner: A Survey of Planning Systems Used in Commercial Video Games |author=Neufeld, Xenija and Mostaghim, Sanaz and Sancho-Pradel, Dario and Brand, Sandy |journal=IEEE Transactions on Games |year=2017 |publisher=IEEE}}</ref> The disadvantage is, that a normal behavior tree is not so expressive like a computer program. That means, the notation of a behavior graph contains action commands, but no [[Loop (computing)|loops]] or if-then-statements. Conditional planning overcomes the bottleneck and introduces an elaborated notation which is similar to a [[control flow]], known from other programming languages like [[Pascal (programming language)|Pascal]]. It is very similar to [[program synthesis]], which means a planner generates sourcecode which can be executed by an interpreter.<ref>{{cite conference |title=Short-term human robot interaction through conditional planning and execution |author=Sanelli, Valerio and Cashmore, Michael and Magazzeni, Daniele and Iocchi, Luca |conference=Proc. of International Conference on Automated Planning and Scheduling (ICAPS) |year=2017 |url=https://www.aaai.org/ocs/index.php/ICAPS/ICAPS17/paper/download/15750/15146 |access-date=2019-08-16 |archive-date=2019-08-16 |archive-url=https://web.archive.org/web/20190816172319/https://www.aaai.org/ocs/index.php/ICAPS/ICAPS17/paper/download/15750/15146 |url-status=live }}</ref>
 
An early example of a conditional planner is “Warplan-C” which was introduced in the mid 1970s.<ref>{{cite conference |title=Conditional nonlinear planning |author=Peot, Mark A and Smith, David E |conference=Artificial Intelligence Planning Systems |pages=189–197 |year=1992 |publisher=Elsevier|url=https://sites.google.com/site/markpeot2/peot92conditional.pdf}}</ref> What is the difference between a normal sequence and a complicated plan, which contains if-then-statements? It has to do with uncertainty at [[Run time (program lifecycle phase)|runtime]] of a plan. The idea is that a plan can react to [[Soft sensor|sensor signals]] which are unknown for the planner. The planner generates two choices in advance. For example, if an object was detected, then action A is executed, if an object is missing, then action B is executed.<ref>{{cite conference |title=Conditional progressive planning under uncertainty |author=Karlsson, Lars |conference=IJCAI |pages=431–438 |year=2001|url=https://www.researchgate.net/publication/2927504}}</ref> A major advantage of conditional planning is the ability to handle [[Partial-order planning|partial plans]].<ref>{{cite techreporttech report |title=A survey of planning in intelligent agents: from externally motivated to internally motivated systems |author=Liu, Daphne Hao |year=2008 |institution=Technical Report TR-2008-936, Department of Computer Science, University of Rochester |url=http://urresearch.rochester.edu/fileDownloadForInstitutionalItem.action?itemId=5342&itemFileId=8258 |access-date=2019-08-16 |archive-date=2023-03-15 |archive-url=https://web.archive.org/web/20230315180735/https://urresearch.rochester.edu/fileDownloadForInstitutionalItem.action?itemId=5342&itemFileId=8258 |url-status=live }}</ref> An agent is not forced to plan everything from start to finish but can divide the problem into [[Chunking (computational linguistics)|chunks]]. This helps to reduce the state space and solves much more complex problems.
 
==== Contingent planning ====