Skip to main content

Artificial Intelligence Planning for Ambient Environments

  • Chapter

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

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD   109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

References

  1. 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)

    Article  Google Scholar 

  2. 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

    Google Scholar 

  3. 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)

    Google Scholar 

  4. 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)

    Google Scholar 

  5. Ghallab, M., Nau, D.S., Traverso, P.: Automated Planning: Theory and Practice. Morgan Kaufmann, Los Altos (2004)

    Google Scholar 

  6. Lundh, R., Karlsson, L., Saffiotti, A.: Autonomous functional configuration of a network robot system. Robot. Auton. Syst. 56(10), 819–830 (2008)

    Article  Google Scholar 

  7. 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)

    Chapter  Google Scholar 

  8. 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)

    Google Scholar 

  9. 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)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. Ramos, C., Augusto, J.C., Shapiro, D.: Ambient intelligence–the next step for artificial intelligence. IEEE Intell. Syst. 23(2), 15–18 (2008)

    Article  Google Scholar 

  12. Ranganathan, A., Campbell, R.H.: Autonomic pervasive computing based on planning. In: ICAC, pp. 80–87. IEEE Computer Society, Salt Lake City (2004)

    Google Scholar 

  13. 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)

    Article  Google Scholar 

  14. 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

    Google Scholar 

  15. 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)

    Google Scholar 

  16. 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)

    Google Scholar 

  17. 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)

    Article  Google Scholar 

  18. 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)

    Google Scholar 

  19. 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

    Google Scholar 

  20. 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)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Susanne Biundo .

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

Reprints 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)

Publish with us

Policies and ethics