{'fraction_non_alphanumeric': 0.015494636471990465, 'fraction_numerical': 0.003575685339690107, 'mean_word_length': 5.043165467625899, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A Polynomial-time Algorithm to Design Push Plans for Sensorless Parts Sorting

We consider the efficient computation of sequences of push actions that simultaneously orient two different polygons. Our motivation for studying this problem comes from the observation that appropriately oriented parts admit simple sensorless sorting. We study the sorting of two polygonal parts by first putting them in properly selected orientations. We give an O(n2 log n)-time algorithm to enumerate all pairs of orientations for the two parts that can be realized by a sequence of push actions and admit sensorless sorting. We then propose an O(n4 log2 n)-time algorithm for finding the shortest sequence of push actions establishing a given realizable pair of orientations for the two parts. These results generalize to the sorting of k polygonal parts.