Abstract
In this chapter, we describe how Artificial Intelligence planning techniques are used in The Adapted and TRusted Ambient eCOlogies (ATRACO) in order to provide Sphere Adaptation . We introduce the Planning Agent (PA) which plays a central role in the realization and the structural adaptation of activity spheres. Based on the particular information included in the ontology of the execution environment, the PA delivers workflows that consist of the basic activities to be executed in order to achieve a user’s goals. The PA encapsulates a search engine for hybrid planning—the combination of hierarchical task network (HTN) planning and partial-order causal-link (POCL) planning . In this chapter, we describe a formal framework and a development platform for hybrid planning, PANDA. This platform allows for the implementation of many search strategies, and we explain how we realize the search engine of the PA by adapting and configuring PANDA specifically for addressing planning problems that are part of the ATRACO service composition. We describe how the PA interacts with the Sphere Manager and the Ontology Manager in order to create planning problems dynamically and generate workflows in the ATRACO-BPEL language . In addition, an excerpt of a planning domain for ATRACO is provided.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Amigoni, F., Gatti, N., Pinciroli, C., Roveri, M.: What planner for ambient intelligence applications? IEEE Trans. Syst. Man Cybern. Part A Syst. Hum. 35(1), 7–21 (2005)
Biundo, S., Schattenberg, B.: From abstract crisis to concrete relief—a preliminary report on combining state abstraction and HTN planning. In: Proceedings of the 6th European Conference on Planning (ECP’01), pp. 157–168. Toledo, Spain (2001). Preprint
El Falou, M., Bouzid, M., Mouaddib, A.I., Vidal, T.: A distributed planning approach for web services composition. In: Proceedings of the 2010 IEEE International Conference on Web Services (ICWS), pp. 337–344. IEEE Computer Society, Miami (2010)
Elkawkagy, M., Schattenberg, B., Biundo, S.: Landmarks in hierarchical planning. In: Coelho, H., Studer, R., Wooldridge, M. (eds.) ECAI. Frontiers in Artificial Intelligence and Applications, vol. 215, pp. 229–234. IOS Press, Amsterdam (2010)
Ghallab, M., Nau, D.S., Traverso, P.: Automated Planning: Theory and Practice. Morgan Kaufmann, Los Altos (2004)
Lundh, R., Karlsson, L., Saffiotti, A.: Autonomous functional configuration of a network robot system. Robot. Auton. Syst. 56(10), 819–830 (2008)
Marquardt, F., Uhrmacher, A.M.: Evaluating AI planning for service composition in smart environments. In: Wiberg, M., Zaslavsky, A.B. (eds.) Proceedings of the 7th International Conference on Mobile and Ubiquitous Multimedia (MUM 2008), pp. 48–55. ACM, Umeå (2008)
Mazzola Paluska, J., Pham, H., Saif, U., Chau, G., Terman, C., Ward, S.: Structured decomposition of adaptive applications. In: PerCom, pp. 1–10. IEEE Computer Society, Salt Lake City (2008)
McDermott, D.V.: Estimated-regression planning for interactions with web services. In: Ghallab, M., Hertzberg, J., Traverso, P. (eds.) Proceedings of the Sixth International Conference on Artificial Intelligence Planning and Scheduling (AIPS), pp. 204–211. AAAI, Toulouse (2002)
Pistore, M., Traverso, P., Bertoli, P.: Automated composition of web services by planning in asynchronous domains. In: Biundo, S., Myers, K.L., Rajan, K. (eds.) Proceedings of the Fifteenth International Conference on Automated Planning and Scheduling (ICAPS), pp. 2–11. AAAI, Monterey (2005)
Ramos, C., Augusto, J.C., Shapiro, D.: Ambient intelligence–the next step for artificial intelligence. IEEE Intell. Syst. 23(2), 15–18 (2008)
Ranganathan, A., Campbell, R.H.: Autonomic pervasive computing based on planning. In: ICAC, pp. 80–87. IEEE Computer Society, Salt Lake City (2004)
R-Moreno, M.D., Borrajo, D., Cesta, A., Oddi, A.: Integrating planning and scheduling in workflow domains. Expert Syst. Appl. 33(2), 389–406 (2007)
Schattenberg, B.: Hybrid planning and scheduling. Ph.D. thesis, University of Ulm, Institute of Artificial Intelligence, Ulm (2009). URN: urn:nbn:de:bsz:289-vts-68953
Schattenberg, B., Weigl, A., Biundo, S.: Hybrid planning using flexible strategies. In: Furbach, U. (ed.) Proceedings of the 28th German Conference on Artificial Intelligence (KI). Lecture Notes in Artificial Intelligence, vol. 3698, pp. 258–272. Springer, Koblenz (2005)
Schattenberg, B., Bidot, J., Biundo, S.: On the construction and evaluation of flexible plan-refinement strategies. In: Hertzberg, J., Beetz, M., Englert, R. (eds.) Proceedings of the 30th German Conference on Artificial Intelligence (KI). Lecture Notes in Artificial Intelligence, vol. 4667, pp. 367–381. Springer, Osnabrück (2007)
Sirin, E., Parsia, B., Vu, D., Hendler, J., Nau, D.: HTN planning for web service composition using SHOP2. Web Semant. Sci. Serv. Agents World Wide Web 1(4), 377–396 (2004)
Smith, D.E., Peot, M.A.: Suspending recursion in causal-link planning. In: Drabble, B. (ed.) Proceedings of the Third International Conference on Artificial Intelligence Planning and Scheduling (AIPS), pp. 182–190. AAAI, Edinburgh (1996)
Vuković, M., Kotsovinos, E., Robinson, P.: An architecture for rapid, on-demand, service composition. Serv. Oriented Comput. Appl. 1, 197–212 (2007). http://dx.doi.org/10.1007/s11761-007-0016-x
Zhao, H., Doshi, P.: Haley: A hierarchical framework for logical composition of web services. In: Proceedings of the 2007 IEEE International Conference on Web Services (ICWS), pp. 312–319. IEEE Computer Society, Salt Lake City (2007)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Appendix
Appendix
This appendix consists of an excerpt of the planning domain for the activity sphere “prepare an unexpected dinner.”
Listing 8.3 Excerpt of the planning domain for AS “Prepare an unexpected dinner”
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE domainModel SYSTEM "model.dtd">
3 <domainModel name="Kitchen_threads">
4 <sortDefinition name="hotplate" type="concrete"/>
5 <sortDefinition name="oven" type="concrete"/>
6 <sortDefinition name="microwave" type="concrete"/>
7 <sortDefinition name="device" type="abstract">
8 <documentation>Locations with additional functionality and only suitable for a number of containers.</documentation>
9 <subSortStatement subsort="hotplate"/>
10 <subSortStatement subsort="oven"/>
11 <subSortStatement subsort="microwave"/>
12 </sortDefinition>
13
14 <!-- ... -->
15
16 <sortDefinition name="resource" type="abstract">
17 <documentation>Parent sort to all objects of the kitchen subjected to planning.</documentation>
18 <subSortStatement subsort="food"/>
19 <subSortStatement subsort="equipment"/>
20 </sortDefinition>
21
22
23 <!-- ... -->
24
25 <relationDeclaration name="has_context" type="flexible">
26 <sortExpression name="resource"/>
27 <sortExpression name="context"/>
28 </relationDeclaration>
29
30 <!-- ... -->
31
32 <decompositionAxiom name="clean_or_no_context_axiom">
33 <varDeclaration name="coca_res" sort="resource"/>
34 <varDeclaration name="coca_cxt" sort="context"/>
35 <leftHandSide>
36 <atomic name="clean_or_no_context">
37 <variable name="coca_res"/>
38 <variable name="coca_cxt"/>
39 </atomic>
40 </leftHandSide>
41 <rightHandSide>
42 <atomic name="clean">
43 <variable name="coca_res"/>
44 </atomic>
45 <not>
46 <atomic name="clean_or_no_context">
47 <variable name="coca_res"/>
48 <variable name="coca_cxt"/>
49 </atomic>
50 </not>
51 </rightHandSide>
52 </decompositionAxiom>
53
54 <!-- ... -->
55
56 <taskDeclaration name="move_container" type="primitive">
57 <documentation>Move a container from one non_storage location to another.</documentation>
58 <varDeclaration name="move_container_obj" sort="container"/>
59 <varDeclaration name="move_container_from" sort="non_storage"/>
60 <varDeclaration name="move_container_to" sort="non_storage"/>
61 <and>
62 <atomic name="free">
63 <variable name="move_container_to"/>
64 </atomic>
65 <atomic name="ready">
66 <variable name="move_container_obj"/>
67 </atomic>
68 <atomic name="at">
69 <variable name="move_container_obj"/>
70 <variable name="move_container_from"/>
71 </atomic>
72 </and>
73 <and>
74 <atomic name="free">
75 <variable name="move_container_from"/>
76 </atomic>
77 <atomic name="at">
78 <variable name="move_container_obj"/>
79 <variable name="move_container_to"/>
80 </atomic>
81 <not>
82 <atomic name="at">
83 <variable name="move_container_obj"/>
84 <variable name="move_container_from"/>
85 </atomic>
86 </not>
87 <not>
88 <atomic name="free">
89 <variable name="move_container_to"/>
90 </atomic>
91 </not>
92 </and>
93 </taskDeclaration>
94
95 <!-- ... -->
96
97 <taskDeclaration name="procedure_fry" type="complex">
98 <varDeclaration name="p_fry_food" sort="food"/>
99 <varDeclaration name="p_fry_container" sort="fry_in_here"/>
100 <varDeclaration name="p_fry_tool" sort="tool"/>
101 <varDeclaration name="p_fry_cxt" sort="context"/>
102 <and>
103 <atomic name="ready">
104 <variable name="p_fry_container"/>
105 </atomic>
106 <atomic name="ready">
107 <variable name="p_fry_tool"/>
108 </atomic>
109 </and>
110 <and>
111 <atomic name="has_context">
112 <variable name="p_fry_container"/>
113 <variable name="p_fry_cxt"/>
114 </atomic>
115 <atomic name="has_context">
116 <variable name="p_fry_food"/>
117 <variable name="p_fry_cxt"/>
118 </atomic>
119 <atomic name="has_context">
120 <variable name="p_fry_tool"/>
121 <variable name="p_fry_cxt"/>
122 </atomic>
123 </and>
124 </taskDeclaration>
125
126 <!-- ... -->
127
128 <methodDeclaration name="method_procedure_fry" taskRef="procedure_fry">
129 <varDeclaration name="method_procedure_fry.p_fry_food" sort="food"/>
130 <varDeclaration name="method_procedure_fry.p_fry_container" sort="fry_in_here"/>
131 <varDeclaration name="method_procedure_fry.p_fry_tool" sort="tool"/>
132 <varDeclaration name="method_procedure_fry.p_fry_cxt" sort="context"/>
133 <taskNode name="mpfmc_into_pan" taskRef="move_food">
134 <varDeclaration name="mpfmc_into_pan.move_food_obj" sort="movable"/>
135 <varDeclaration name="mpfmc_into_pan.move_food_from" sort="container"/>
136 <varDeclaration name="mpfmc_into_pan.move_food_to" sort="container"/>
137 </taskNode>
138 <taskNode name="mpfmc_context_container" taskRef="set_context">
139 <varDeclaration name="mpfmc_context_container.scxt_obj" sort="resource"/>
140 <varDeclaration name="mpfmc_context_container.scxt_cxt" sort="context"/>
141 </taskNode>
142 <taskNode name="mpfmc_context_food" taskRef="set_context">
143 <varDeclaration name="mpfmc_context_food.scxt_obj" sort="resource"/>
144 <varDeclaration name="mpfmc_context_food.scxt_cxt" sort="context"/>
145 </taskNode>
146 <taskNode name="mpfmc_context_tool" taskRef="set_context">
147 <varDeclaration name="mpfmc_context_tool.scxt_obj" sort="resource"/>
148 <varDeclaration name="mpfmc_context_tool.scxt_cxt" sort="context"/>
149 </taskNode>
150 <taskNode name="mpfmc_flip" taskRef="use_tool">
151 <varDeclaration name="mpfmc_flip.use_tool_tool" sort="tool"/>
152 <varDeclaration name="mpfmc_flip.use_tool_on" sort="container"/>
153 </taskNode>
154 <taskNode name="mpfmc_onto_hotplate" taskRef="move_container">
155 <varDeclaration name="mpfmc_onto_hotplate.move_container_obj" sort="container"/>
156 <varDeclaration name="mpfmc_onto_hotplate.move_container_from" sort="non_storage"/>
157 <varDeclaration name="mpfmc_onto_hotplate.move_container_to" sort="non_storage"/>
158 </taskNode>
159 <orderingConstraint predecessor="mpfmc_context_tool" successor="mpfmc_flip"/>
160 <orderingConstraint predecessor="mpfmc_context_container" successor="mpfmc_into_pan"/>
161 <orderingConstraint predecessor="mpfmc_context_food" successor="mpfmc_into_pan"/>
162 <orderingConstraint predecessor="mpfmc_into_pan" successor="mpfmc_flip"/>
163 <orderingConstraint predecessor="mpfmc_onto_hotplate" successor="mpfmc_into_pan"/>
164 <valueRestriction type="eq" variable="method_procedure_fry.p_fry_container">
165 <variable name="mpfmc_into_pan.move_food_to"/>
166 </valueRestriction>
167 <valueRestriction type="eq" variable="mpfmc_context_container.scxt_obj">
168 <variable name="method_procedure_fry.p_fry_container"/>
169 </valueRestriction>
170 <valueRestriction type="eq" variable="method_procedure_fry.p_fry_cxt">
171 <variable name="mpfmc_context_container.scxt_cxt"/>
172 </valueRestriction>
173 <valueRestriction type="eq" variable="method_procedure_fry.p_fry_food">
174 <variable name="mpfmc_into_pan.move_food_obj"/>
175 </valueRestriction>
176 <valueRestriction type="eq" variable="mpfmc_context_container.scxt_obj">
177 <variable name="method_procedure_fry.p_fry_container"/>
178 </valueRestriction>
179 <valueRestriction type="eq" variable="mpfmc_context_food.scxt_cxt">
180 <variable name="method_procedure_fry.p_fry_cxt"/>
181 </valueRestriction>
182 <valueRestriction type="eq" variable="mpfmc_context_food.scxt_obj">
183 <variable name="method_procedure_fry.p_fry_food"/>
184 </valueRestriction>
185 <valueRestriction type="eq" variable="method_procedure_fry.p_fry_cxt">
186 <variable name="mpfmc_context_tool.scxt_cxt"/>
187 </valueRestriction>
188 <valueRestriction type="eq" variable="method_procedure_fry.p_fry_tool">
189 <variable name="mpfmc_flip.use_tool_tool"/>
190 </valueRestriction>
191 </methodDeclaration>
192
193 <!-- ... -->
194
195 </domainModel>
Rights and permissions
Copyright information
© 2016 Springer International Publishing Switzerland
About this chapter
Cite this chapter
Bidot, J., Biundo, S. (2016). Artificial Intelligence Planning for Ambient Environments. In: Ultes, S., Nothdurft, F., Heinroth, T., Minker, W. (eds) Next Generation Intelligent Environments. Springer, Cham. https://doi.org/10.1007/978-3-319-23452-6_8
Download citation
DOI: https://doi.org/10.1007/978-3-319-23452-6_8
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-23451-9
Online ISBN: 978-3-319-23452-6
eBook Packages: EngineeringEngineering (R0)