{'fraction_non_alphanumeric': 0.03025347506132461, 'fraction_numerical': 0.004905968928863451, 'mean_word_length': 4.800947867298579, '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}}
Assigning wires to layers of a printed circuit board

To minimize vias in a printed circuit board it is valuable to assign each wire to a layer of the board, and to try one-layer paths for each wire before attempting paths with vias. The basis for making the assignment is to minimize a measure of interference between the wires on each layer: straight line intersections, rectangle intersections, and L-path intersections. Of these, the L-path (one horizontal and one vertical line segment) intersections produce the least congested, most easily routed assignments.
 Two algorithms from the existing literature for reducing the number of intersections to zero (by increasing the number of layers), are judged to be computationally infeasible for practical sized problems. The algorithms of Rozenberg and Rupp (A1), and of S.B. Akers (A2,A3) are practical, but produce more intersections than four new algorithms due to the author (A4 to A7). In particular, Algorithm 7 produces results as good as exhaustive pairwise interchanges at one-third the cost. It is cheaper than all but the Rozenberg and Rupp algorithm, which is used as its first pass. And it produces far better assignments than all one-pass algorithms tested.