Illustrative Examples - PlanX-Universe/sh GitHub Wiki

This page provides instructions on how to reproduce the two illustrative examples presented in [1].

Solving Cloud Deployment Problems

The first example demonstrates the use of the SH planning system to solve cloud deployment problems. SH includes a domain model specifically for solving deployment problems for cloud applications [2,3]. The domain model is called deployment and can be found in its repository folder.

The specific cloud deployment request is to create a simple application consisting of a dashboard component that requires the functionalities of an Apache2 server and a Cassandra database. The problem instance representing this request is named p-dashboard and is also available in the repository folder.

Use the following command to execute the SH's service to reproduce the output shown in Figure 2 of [1]:

PlanningServices.planWithGivenDomainAndProblemNamePrintPlans("deployment", "p-dashboard", 1)

Performance Comparison on the Benchmark Rover Domain

The second example focuses on assessing the performance of SH on the rover domain, which is about planetary exploration via rovers. This domain serves as a benchmark for characterising and comparing the performance of planners [4]. The example involves running evaluation tests on a single planning problem available in the SH's repository (named problem). One should invoke SH to solve the planning problem three times, collect its plan generation time and memory usage (already provided by SH), and average those results. Furthermore, SH should be instructed to generate different numbers of plans for the problem (i.e., 1, 5, 10, 50, and 100 plans). For instance, the following command generates five plans:

PlanningServices.planWithGivenDomainAndProblemNamePrintPlans("rover", "problem", 5)

Performance metrics are compared against JSHOP2, which also employs state-based HTN planning [5]. Like SH, JSHOP2 provides the rover domain model and problem instance in its software distribution. The instructions on how to set up and run JSHOP2 are out of the scope of this page and can be found in JSHOP2's distribution. The instructions for running evaluation tests and collecting relevant data are the same as for SH.

References

[1] Georgievski, I., Palghadmal, A. V., Alnazer, E., & Aiello, M. SH: Service-Oriented HTN Planning System for Real-World Domains. Submitted to a journal.

[2] Georgievski, I., Nizamic, F., Lazovik, A., and Aiello, M. Cloud Ready Applications Composed via HTN Planning. In IEEE International Conference on Service Oriented Computing and Applications, pages 23–33, 2017.

[3] Georgievski, I. HTN Planning Domain for Deployment of Cloud Applications, In International Planning Competition: Planner and Domain Abstracts, 2021, pp. 34–46.

[4] Alnazer, E., Georgievski, I., and Aiello, M. On Bringing HTN Domains Closer to Reality - The Case of Satellite and Rover Domains, In International Conference on Automated Planning Systems Workshop on Scheduling and Planning Applications, 2022.

[5] Ilghami, O. Documentation for JSHOP2, Tech. rep., Department of Computer Science, University of Maryland (2006). JSHOP2's code available at https://github.com/mas-group/jshop2