Optimally solving permutation sorting problems with efficient partial expansion bidirectional heuristic search