GTPyhop can have an intelligent way to choose an order in which to achieve the unigoals. That would require either modifying m_split_multigoals to use a heuristic function (which is something we have not implemented), or else writing a domain-specific multigoal method and using it instead of m_split_multigoals, as in the blocks_hybrid example domain.
http://www.primaryobjects.com/2015/11/06/artificial-intelligence-planning-with-strips-a-gentle-introduction/ mentioned that a* is a legitimate way of solving this.