Multistart and recombination system and method for voting district map analysis

The multistart and recombination system addresses the limitations of current spatial aggregation methods by generating a diverse pool of solutions, reducing computational burden and enhancing the quality and diversity of spatial configurations for applications like voter district map generation.

WO2026102442A1PCT designated stage Publication Date: 2026-05-15OHIO STATE INNOVATION FOUND
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
OHIO STATE INNOVATION FOUND
Filing Date
2025-11-11
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

Current spatial aggregation methods, such as those used in voter district map generation, are computationally intensive and typically produce a single solution, failing to capture the full range of viable configurations and hindering decision-makers from evaluating multiple spatial scenarios.

Method used

A multistart and recombination system and method that generates a diverse pool of random solutions using a multistart phase and refines them through a recombination phase, ensuring the discovery of multiple unique optimal or near-optimal configurations.

Benefits of technology

This approach reduces computational burden while enhancing the quality and diversity of spatial configurations, allowing for broader exploration of solution spaces and facilitating informed decision-making in applications like voter district map generation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure US2025054947_15052026_PF_FP_ABST
    Figure US2025054947_15052026_PF_FP_ABST
Patent Text Reader

Abstract

An exemplary multistart and recombination system and method are disclosed for determining unique solutions to spatial aggregation problems using a multistart phase and a recombination phase algorithm, where the multistart phase generates a diverse pool of random solutions and where the recombination algorithm uses the generated random solution to create new, improved solutions, ensuring the discovery of multiple unique optimal or near-optimal configurations. The spatial aggregation problems may be used to analyze census data. In some embodiments, spatial aggregation problems may be used to perform voter district map analysis to identify a revised voter district map.
Need to check novelty before this filing date? Find Prior Art

Description

MULTISTART AND RECOMBINATION SYSTEM AND METHOD FOR VOTING DISTRICT MAP ANALYSISRelated Application

[0001] This application claims priority to, and the benefit of, U. S. Provisional Patent Application No. 63 / 719,011, filed November 11, 2024, entitled “MULTISTART & RECOMBINATION SYSTEM AND METHOD FOR VOTING DISTRICT MAP ANALYSIS,” which is incorporated by reference herein in its entirety.Background

[0002] Spatial aggregation is crucial in numerous industries where data from low-level spatial units, such as census blocks, should be grouped into larger, meaningful regions. State-of-the-art approaches experience the high computational complexity of these tasks and tend to focus on finding a single solution. However, real-world applications require identifying multiple optimal or near-optimal solutions to account for varying spatial configurations that meet the same objectives.

[0003] There is a benefit to developing a system for finding solutions to spatial aggregation challenges.Summary

[0004] An exemplary multistart and recombination system and method are disclosed for generating voting district map using a multistart phase and a recombination phase algorithm, as a unique solutions to spatial aggregation problems, where the multistart phase generates a diverse pool of random solutions and where the recombination algorithm uses the generated random solution to create new, improved solutions, ensuring the discovery of multiple unique optimal or near-optimal configurations. The spatial aggregation problems may be used to analyze census data. In some embodiments, spatial aggregation problems may be used to perform voter district map analysis to identify a revised voter district map.

[0005] The exemplary system and method address a need in solving spatial aggregation tasks, which are foundational in urban planning, public health, environmental management, and electoral districting. Current spatial optimization methods are computationally intensive and produce only a single solution, which may not capture the full range of viable configurations andhinder decision-makers from evaluating multiple spatial scenarios. In contrast, the exemplary system and method provide a scalable and efficient approach to discovering multiple unique optimal or near-optimal solutions. By leveraging a multistart phase that generates a pool of randomized candidate solutions, followed by a recombination phase that combines and refines these candidates, the exemplary’ system and method provide broader exploration of the solution space. This dual-phase approach reduces computational burden while enhancing the quality and diversity of the resulting spatial configurations.

[0006] The exemplary system and method are advantageous in applications where multiple valid spatial arrangements are considered, such as voter district map generation, where legal, demographic, and geographic constraints necessitate evaluating alternative districting plans. The exemplary system and method’s configuration to produce a customizable pool of high-quality solutions facilitates users to make informed decisions based on a range of spatial outcomes, rather than relying on a single, potentially suboptimal result.

[0007] In an aspect, method for determining a voting district map is disclosed comprising: analyzing, by a processor, a voting district map as a spatial aggregation problem of a graph G containing a set of free nodes (i.e., vertices) and a set of edges connecting the free nodes including: receiving assignment data (e.g., input graph G, number of regions p, weights W*); generating one or more initial random solutions, including a first initial random solution; generating one or more initial solutions, including a first initial solution, from the first initial random solution containing a set of regions; generating one or more recombined solutions, including a first recombined solution, from the one or more initial solutions; generating a solution tuple including at least one of the assignment array, the set of regions, and a set of subgraphs; and outputting one or more visualizations for, at least, a portion of the assignment array (e.g., D), a portion of the set of regions (e.g., U12), or a portion of the set of subgraphs (e.g., G'), wherein each visualization of the assignment array, the set of regions, or the set of subgraphs defines a revised voting district map to be used to establish assignment of districts in a voting district.

[0008] In some embodiments, the one or more initial random solutions are generated by: (i) selecting two or more seed nodes from the set of free nodes, including a first seed node and a second seed node; (ii) generating a first region by grouping two or more free nodes in the set of nodes nearest to the first seed node, including a first free node and a second free node; (iii)generating a second region by grouping two or more nodes in the set of nodes nearest to the second seed node, including a third free node and a fourth free node; (iv) assigning the first seed node to the first region using the assignment data (e.g., input data G); (v) assigning the second seed node to the second region using the second assignment rule; (vi) generating the set of regions by grouping the first region and the second region; (vii) generating a subgraph using the set of regions, wherein the set of regions contains the first and the second regions; and (viii) generating a tuple containing the assignment array, the set of regions, and the subgraph.

[0009] In some embodiments, the one or more initial solutions are generated by: (i) receiving an ideal weight for a region; (ii) reconfiguring the weight of the first region in the set of regions by: (a) identifying one or more adjacent regions to the first region, including a first adjacent region, from the set of regions; and (b) providing a first temporary node from the first region to the first adjacent region and a second temporary node from the first adjacent region to the first region until the weight of the first region is below or equal to the ideal weight for a region; and (iii) reconfiguring the weight of the first adjacent region in the set of regions by providing a third temporary node from the first adjacent region to the first region and a fourth temporary node from the first adjacent region to the first region until weight of the second region is below the ideal weight for a region.

[0010] In some embodiments, the one or more recombined solutions are generated by: (i) receiving a first subgraph from a first improved solution; (ii) receiving a second subgraph from a second improved solution; (iii) generating a third subgraph (i.e., a supergraph where each node represents the nodes in a subgraph) by repetitively merging the first subgraph and the second subgraph using common regions in the two subgraphs; and (iv) generating the set of subgraphs, including at least the third subgraph.

[0011] In some embodiments, merging the first subgraph and the second subgraph is determined by: receiving common nodes between the common regions in the two subgraphs; and generating a shortest path (i.e., edge) connecting the common nodes between the common regions in the two graphs using a shortest path algorithm.

[0012] In some embodiments, the repetitively merging of the first subgraph and the second subgraph is performed by merging a node with a smallest weight to an adjacent weight with a lowest weight.

[0013] In some embodiments, generating one or more initial random solutions, generating one or more initial solutions, and generating one or more recombined solutions are concurrently executed in a multiprocessing operation (i.e., package).

[0014] In some embodiments, weight of a region is a population value.

[0015] In another aspect, a system is disclosed comprising: a processor; and a memory’ having instructions stored thereon, wherein execution of the instructions by the processor causes the processor to: analyze a voting district map as a spatial aggregation problem of a graph G containing a set of free nodes (i.e., vertices) and a set of edges connecting the free nodes by: receiving assignment data (e.g., original graph G, number of regions p, weights W*) generating one or more initial random solutions, including a first initial random solution; generating one or more initial solutions, including a first initial solution, from the first initial random solution containing a set of regions; generating one or more recombined solutions, including a first recombined solution, from the one or more initial solutions; generating a solution tuple including at least one of the assignment array, the set of regions, and a set of subgraphs; and outputting one or more visualizations for, at least, a portion of the assignment array (e.g., D), a portion of the set of regions (e.g., R₁₂), or a portion of the set of subgraphs (e.g., G'), wherein each visualization of the assignment array, the set of regions, or the set of subgraphs defines a revised voting district map to be used to establish assignment of districts in a voting district.

[0016] In some embodiments, the instructions to generate the one or more initial random solutions include instructions to: (i) select two or more seed nodes from the set of free nodes, including a first seed node and a second seed node; (ii) generate a first region by grouping two or more free nodes in the set of nodes nearest to the first seed node, including a first free node and a second free node; (iii) generate a second region by grouping two or more nodes in the set of nodes nearest to the second seed node, including a third free node and a fourth free node; (iv) assign the first seed node to the first region using the first assignment rule; (v) assign the second seed node to the second region using the second assignment rule; (vi) generate the set of regions by grouping the first region and the second region; (vii) generate a subgraph using the set of regions, wherein the set of regions contains the first and the second regions; and (viii) generate a tuple containing the assignment array, the set of regions, and the subgraph.

[0017] In some embodiments, the instructions to generate the one or more initial solutions include instructions to: (i) receive an ideal weight for a region; (ii) reconfigure theweight of the first region in the set of regions by: (a) identifying one or more adjacent regions to the first region, including a first adjacent region, from the set of regions; and (b) providing a first temporary node from the first region to the first adjacent region and a second temporary node from the first adjacent region to the first region until the weight of the first region is below or equal to the ideal weight for a region; and (iii) reconfigure the weight of the first adjacent region in the set of regions by providing a third temporary node from the first adjacent region to the first region and a fourth temporary node from the first adjacent region to the first region until weight of the second region is below the ideal weight for a region.

[0018] In some embodiments, the instructions to generate the one or more recombined solutions include instructions to: (i) receive a first subgraph from a first improved solution; (ii) receive a second subgraph from a second improved solution; (iii) generate a third subgraph (i.e., a supergraph where each node represents the nodes in a subgraph) by repetitively merging the first subgraph and the second subgraph using common regions in the two subgraphs; and (iv) generate the set of subgraphs, including at least the third subgraph,

[0019] In some embodiments, the instructions to merge the first subgraph and the second subgraph include instructions to: receive common nodes between the common regions in the two subgraphs; and generate a shortest path (i.e., edge) connecting the common nodes between the common regions in the two graphs using a shortest path algorithm.

[0020] In some embodiments, the instructions to repetitively merge the first subgraph and the second subgraph are performed by merging a node with a smallest weight to an adjacent weight with a lowest weight.

[0021] In some embodiments, the instructions to generate the one or more initial random solutions, generate the one or more initial solutions, and generate the one or more recombined solutions are concurrently executed in a multiprocessing operation (i.e., package).

[0022] In yet another aspect, a non-transitory computer readable medium having instructions stored thereon is disclosed, wherein execution of the instructions by a processor causes the processor to: analyze a voting district map as a spatial aggregation problem of a graph G containing a set of free nodes (i.e., vertices) and a set of edges connecting the free nodes by: receiving assignment data (e.g., original graph G, number of regions p, weights W*); generating one or more initial random solutions, including a first initial random solution; generating one or more initial solutions, including a first initial solution, from the first initial random solutioncontaining a set of regions; generating one or more recombined solutions, including a first recombined solution, from the one or more initial solutions; generating a solution tuple including at least one of the assignment array, the set of regions, and a set of subgraphs; and outputting one or more visualizations for, at least, a portion of the assignment array (e.g., D), a portion of the set of regions (e.g., R₁₂), or a portion of the set of subgraphs (e.g., G'), wherein each visualization of the assignment array, the set of regions, or the set of subgraphs defines a revised voting district map to be used to establish assignment of districts in a voting district.

[0023] In some embodiments, the instructions to generate the one or more initial random solutions include instructions to: (i) select two or more seed nodes from the set of free nodes, including a first seed node and a second seed node; (ii) generate a first region by grouping two or more free nodes in the set of nodes nearest to the first seed node, including a first free node and a second free node; (iii) generate a second region by grouping two or more nodes m the set of nodes nearest to the second seed node, including a third free node and a fourth free node; (iv) assign the first seed node to the first region using the first assignment rule; (v) assign the second seed node to the second region using the second assignment rule; (vi) generate the set of regions by grouping the first region and the second region; (vii) generate a subgraph using the set of regions, wherein the set of regions contains the first and the second regions; and (vui) generate a tuple containing the assignment array, the set of regions, and the subgraph.

[0024] In some embodiments, the instructions to generate the one or more initial solutions include instructions to: (i) receive an ideal weight for a region; (ii) reconfigure the weight of the first region in the set of regions by: (a) identifying one or more adjacent regions to the first region, including a first adjacent region, from the set of regions; and (b) providing a first temporary node from the first region to the first adjacent region and a second temporary node from the first adjacent region to the first region until the weight of the first region is below or equal to the ideal weight for a region; and (iii) reconfigure the weight of the first adjacent region in the set of regions by providing a third temporary node from the first adjacent region to the first region and a fourth temporary node from the first adjacent region to the first region until weight of the second region is below the ideal weight for a region.

[0025] In some embodiments, the instructions to generate the one or more recombined solutions include instructions to: (i) receive a first subgraph from a first improved solution; (ii) receive a second subgraph from a second improved solution; (iii) generate a third subgraph (i. e.,a supergraph where each node represents the nodes in a subgraph) by repetitively merging the first subgraph and the second subgraph using common regions in the two subgraphs; and (iv) generate the set of subgraphs, including at least the third subgraph.

[0026] In some embodiments, the instructions to merge the first subgraph and the second subgraph include instructions to: receive common nodes between the common regions in the two subgraphs; and generate a shortest path (i.e., edge) connecting the common nodes between the common regions in the two graphs using a shortest path algorithm.Brief Description of Drawings

[0027] Figs. 1 A - IB each shows an example system for determining unique solutions to spatial aggregation problems, including voting district maps generation, in accordance with an illustrative embodiment.

[0028] Fig. 2A shows an example operation flow for the exemplary system, in accordance with an illustrative embodiment.

[0029] Fig. 2B shows an example operation flow for the analysis of the voting district map (also referred to as a multistart and recombination module) in the exemplary system, in accordance with an illustrative embodiment.

[0030] Fig, 3 shows example data structures for aggregation encoding in the analysis of the voting district map, in accordance with an illustrative embodiment.

[0031] Figs. 4A - 41 show example algorithmic implementations for the analysis of the voting district map in the exemplary system.

[0032] Figs. 5 A - 51 shows experimental evaluations of the exemplary system, and comparisons between the exemplary system and state-of-the-art systems and methods.Detailed Description

[0033] Some references, which may include various patents, patent applications, and publications, are cited in a reference list and discussed in the disclosure provided herein. The citation and / or discussion of such references is provided merely to clarify the description of the disclosed technology and is not an admission that any such reference is “prior art” to any aspects of the disclosed technology described herein. In terms of notation, “[n]” corresponds to the nth reference in the list. For example, [1] refers to the first reference in the list. All references citedand discussed in this specification are incorporated herein by reference in their entirety and to the same extent as if each reference were individually incorporated by reference.

[0034] Example System

[0035] Figs. 1 A - IB each shows an example system 100 (shown as 100a and 100b) for determining unique solutions to spatial aggregation problems, including voting district maps generation, in accordance with an illustrative embodiment.

[0036] As shown in Fig. 1A, the exemplary system 100a includes a database 102, a map analyzer 106, and a visualizer 110, The database 102 is configured to (i) store one or more blank maps, including a blank map 101, and (ii) transmit the blank map 101, which includes counties and population values 104, to the map analyzer 106. The map analyzer 106, operatively coupled with the database 102, is configured to (i) receive the blank map 101 having counties and values 104, (ii) redistrict, via a multistart and recombination module 108, the blank map 101 into a valid district map 112 (also referred to as a valid voting district map), and (iii) transmit the valid district map 112 to the visualizer 110. The visualizer 110, operatively coupled with the map analyzer 106, is configured to display the valid district map 112 on a digital device or a website (not shown).

[0037] As shown in Fig. IB, the exemplary system 100b includes a database 102, a map analyzer 106, and a visualizer 110. The database 102 is configured to (i) store one or more valid district maps, including a first valid district map 114, and (ii) transmit the first valid district map 114, which includes counties, districted regions, and population values 116, to the map analyzer 106. The map analyzer 106, operatively coupled with the database 102, is configured to (i) receive the first valid district map 114 having counties, districted regions, and population values 116, (ii) redistrict, via the multistart and recombination module 108, the first valid district map 114 into a second valid district map 118, and (iii) transmit the second valid district map 118 to the visualizer 110. The visualizer 110, operatively coupled with the map analyzer 106, is configured to display the second valid district map 118 on a digital device or a website (not shown).

[0038] In some embodiments, an input district map (e.g., 101, 114) to the map analyzer 106 is a spatial aggregation problem of a graph, denoted as G, which includes a set of free nodes and a set of edges connecting the free nodes.

[0039] Multistart and Recombination Module (108). The multistart and recombination module 108, operating on the map analyzer 106, is configured to (i) receive the input district map (e.g., 101, 114) and (ii) analyze and redistrict the input district map (e.g., 101, 114) into a revised valid district map (e.g., 112, 118). During the analysis and redistricting of the input district map (e.g., 101, 114), the multistart and recombination module 108 is configured to (i) receive assignment data, (ii) generate one or more initial random solutions, (iii) generate one or more initial solutions, including a first initial solution, from the first initial random solution containing a set of regions, (iv) generate one or more recombined solutions, including a first recombined solution, from the one or more initial solutions, and (v) generate a solution tuple including at least one of the assignment array, the set of regions, and a set of subgraphs, wherein one or more visualizations of the assignment array, the set of regions, and a set of subgraphs define a revised valid district map (e.g., 112, 118). In some embodiments, the analysis and redistricting operation of the module 108 is implemented using a multistart and recombination algorithm shown in Fig.4A.

[0040] During the generation of the one or more initial random solutions (e.g., 208, Fig.2B), the module 108 is further configured to (i) select two or more seed nodes from the set of free nodes, including a first seed node and a second seed node, (ii) generate a first region by grouping two or more free nodes in the set of nodes nearest to the first seed node, including a first free node and a second free node, (iii) generate a second region by grouping two or more nodes in the set of nodes nearest to the second seed node, including a third free node and a fourth free node, (iv) assign the first seed node to the first region using the assignment data (e.g., input data G), (v) assign the second seed node to the second region using the second assignment rule, (vi) generate the set of regions by grouping the first region and the second region, (vii) generate a subgraph using the set of regions, where the set of regions contains the first and the second regions, and (viii) generate a tuple containing the assignment array, the set of regions, and the subgraph.

[0041] During the generation of the one or more initial solutions (e.g., 210, Fig. 2B), the module 108 is further configured to (i) receive an ideal weight for a region, (ii) reconfigure the weight of the first region in the set of regions by identifying one or more adjacent regions to the first region, including a first adjacent region, from the set of regions, and providing a first temporary node from the first region to the first adjacent region and a second temporary nodefrom the first adjacent region to the first region until the weight of the first region is below or equal to the ideal weight for a region, and (iii) reconfigure the weight of the first adjacent region in the set of regions by providing a third temporary node from the first adjacent region to the first region and a fourth temporary node from the first adjacent region to the first region until weight of the second region is below the ideal weight for a region.

[0042] During the generation of the one or more recombined solutions (e.g., 212, Fig. 2B), the module 108 is further configured to (i) receive a first subgraph from a first improved solution, (ii) receive a second subgraph from a second improved solution, (iii) generate a third subgraph by repetitively merging the first subgraph and the second subgraph using common regions in the two subgraphs, and (iv) generate the set of subgraphs, including at least the third subgraph. In some embodiments, the module 108 is configured to determine the repetitive merging of the first subgraph and the second subgraph by (i) receiving common nodes between the common regions in the two subgraphs, and (ii) generating a shortest path connecting the common nodes between the common regions in the two graphs using a shortest path algorithm. In some embodiments, the module 108 is configured to perform the repetitive merging of the first subgraph and the second subgraph by merging a node with a smallest weight to an adjacent weight with a lowest weight.

[0043] In some embodiments, the module 108 is configured as a multiprocessor configured to concurrently execute the generation of the one or more initial random solutions, the generation of the one or more initial solutions, and the generation of the one or more recombined solutions.

[0044] Example Method

[0045] Fig. 2A shows an example operation flow 200a for the exemplary system, in accordance with an illustrative embodiment. The method 200a includes analyzing (202), by a processor (e.g., 108, Figs. 1A - IB), a voting district map (e.g., 101, 114, Figs. 1A - IB) as a spatial aggregation problem of a graph G containing a set of free nodes (i.e., vertices) and a set of edges connecting the free nodes. The method 200a includes outputting (204) a revised voting district map (e.g., 112, 118, Figs. 1A - IB) that is defined by one or more visualizations (e.g., 110, Figs. 1 A - IB) generated by the analysis (202).

[0046] Fig. 2B show’s an example operation flow 200b for the analysis (202) of the voting district map (e.g., 101, 114, Figs. 1A - IB), in accordance with an illustrativeembodiment. The method 200b includes receiving (206) assignment data. The method 200b includes generating (208) one or more initial random solutions, including a first initial random solution. The method 200b includes generating (210) one or more initial solutions, including a first initial solution, from the first initial random solution containing a set of regions. The method 200b includes generating (212) one or more recombined solutions, including a first recombined solution, from the one or more initial solutions. The method 200b includes generating (214) a solution tuple including at least one of the assignment array, the set of regions, and a set of subgraphs. The method 200b includes generating (216) one or more visualizations (e.g., 110, Figs, 1A - IB) for at least a portion of the assignment array, a portion of the set of regions, or a portion of the set of subgraphs, where each visualization may define a revised voting district map (e.g,, 112, 118, Figs, 1 A ~ IB), In some embodiments, the method 200b is implemented using a multistart and recombination algorithm (MSRA) shown in Fig. 4A,

[0047] The generation (208) of the one or more initial random solutions includes (i) selecting two or more seed nodes from the set of free nodes, including a first seed node and a second seed node, ( ii) generating a first region by grouping two or more free nodes in the set of nodes nearest to the first seed node, including a first free node and a second free node, ( iii) generating a second region by grouping two or more nodes in the set of nodes nearest to the second seed node, including a third free node and a fourth free node, (iv) assigning the first seed node to the first region using the assignment data (e.g., input data G), (v) assigning the second seed node to the second region using the second assignment rule, (vi) generating the set of regions by grouping the first region and the second region, (vii) generating a subgraph using the set of regions, where the set of regions contains the first and the second regions, and (viii) generating a tuple containing the assignment array, the set of regions, and the subgraph. In some embodiments, the generation (208) of the one or more initial random solutions is implemented using an initialization algorithm shown in Fig. 4B.

[0048] The generation (210) of the one or more initial solutions includes (i) receiving an ideal weight for a region, (ii) reconfiguring the weight of the first region in the set of regions by identifying one or more adjacent regions to the first region, including a first adjacent region, from the set of regions, and providing a first temporary node from the first region to the first adjacent region and a second temporary node from the first adjacent region to the first region until the weight of the first region is below or equal to the ideal weight for a region, and (iii)reconfiguring the weight of the first adjacent region in the set of regions by providing a third temporary node from the first adjacent region to the first region and a fourth temporary' node from the first adjacent region to the first region until weight of the second region is below’ the ideal weight for a region. In some embodiments, the generation (210) of the one or more initial solutions is implemented using a give-and-take (GAT) algorithm shown in Fig. 4C.

[0049] The generation (212) of the one or more recombined solutions includes (i) receiving a first subgraph from a first improved solution, (ii) receiving a second subgraph from a second improved solution, (iii) generating a third subgraph by repetitively merging the first subgraph and the second subgraph using common regions in the two subgraphs, and (iv) generating the set of subgraphs, including at least the third subgraph. In some embodiments, the repetitive merging of the first subgraph and the second subgraph is determined by (i) receiving common nodes between the common regions in the two subgraphs, and (ii) generating a shortest path connecting the common nodes between the common regions in the two graphs using a shortest path algorithm. In some embodiments, the repetitive merging of the first subgraph and the second subgraph is performed by merging a node with a smallest weight to an adjacent weight with a lowest weight. In some embodiments, the generation (212) of the one or more recombined solutions is implemented using a recombination algorithm shown in Fig. 4E.

[0050] The generation (208) of the one or more initial random solutions, the generation (210) of the one or more initial solutions, and the generation (212) of the one or more recombined solutions can be concurrently executed in a multiprocessing operation (e.g., 108, Figs. 1A- IB).

[0051] Example Implementation

[0052] Given a set of n spatial units, each unit is associated with a weight. The algorithm uses population as the weight for each spatial unit, but weights may be other types of quantitative attributes for different applications (e.g., demand for school buses or police patrol). The goal of a spatial aggregation problem is to group the spatial units into p contiguous regions so that the difference between the total w’eight of each region and an ideal weight is minimized. A region is contiguous if or when it does not contain multiple disjoint areas. The weight of the z-th unit may be denoted as wt (1 < i < / ?). The ideal weight for each aggregated region may be defined, e.g., as an integer, and calculated per Equation 1.(Eq. 1)

[0053] In Equation 1, W= iwi is the sum of weight for all units, and the [ ] operator rounds the input to its closest integer. The objective of a spatial aggregation problem is to minimize the percent of the total deviation from the ideal weight as shown in Equation 2.(Eq. 2)

[0054] In Equation 2, W}is the total weight of the / -th region.

[0055] Data structures. The n spatial units to be aggregated may be represented using a graph G ---- (V, £). Mere, V ---- {i} is a set of nodes where z is an integer between 1 and n. indicating a spatial unit, and E ------ {(i,j)} is a set of edges where the tuple (i, j) indicates units i and j are adjacent (e.g., the two units share a boundary or in other ways deemed to be spatially connected with each other). The units may be aggregated into p regions by assigning each unit (node) to a region, where each region is identified using a unique number between 1 and p.

[0056] An aggregation is encoded using one of three related data structures shown in Table 1.Table 1. Example data structures used for aggregation encoding

[0057] Fig. 3 shows example three data structures #1, #2, and #3 using ten hypothetical spatial units, in accordance with an illustrative embodiment. Specifically, subpanel (A) shows a spatial configuration of 10 spatial units. Subpanel (B) shows a graph denoted as G = (V, E) representing the units, wherein V = {1,2,3,4,5,6,7,8,9,10} denotes a set of nodes and£= {(2,1),(3,2), (4,3), (5,4), (6,5), (7,6), (8,1), (8,6), (8,7), (9,2), (9,3), (9,6), (9,8), (10,3), (10,4), (10,5), (10,6), (10,9)} denotes a set of edges. Subpanel (C) shows an example aggregation scheme where spatial units are grouped into 2 contiguous regions, wherein the left region is denoted as 1 and the right region is denoted as 2. From the aggregation scheme shown in subpanel (C), D = {1,1, 1,2, 2, 2, 1,1, 1,2} denotes an assignment array, R = {{1,2, 3, 7, 8, 9}, {4,5,6,10}} denotes a region set, and G’ = (F, £”) denotes a subgraph comprising a subet of edges £” = {(2, 1), (3, 2), (5, 4), (6, 5), (8, 1), (8, 7), (9, 2), (9, 3), (9, 8), (10, 4), (10, 5), (10, 6)}.

[0058] A solution to an aggregation problem may then be denoted as a tuple shown in Equation 3,5 = (G, D, R, G’)(Eq. 3)

[0059] In the tuple shown in Equation 3, one of the three data structures, R, D, and G’, may be used to derive the other two, and the three constructs R, D, and G’ store information about the regions and aggregation in different forms. Each node in the graph representation also has a set of atributes, e.g., each node is associated with a weight. In the algorithms implementing the exemplary method, without loss of generality, w, denotes the weight of unit z and Wi denotes the weight for region i.

[0060] Multistart and Recombination Algorithm (MRS A). Fig. 4A show's an example multistart and recombination algorithm (shown as Algorithm 1) implementing the exemplary method (e.g., 200b, Fig. 2B).

[0061] As shown in Fig. 4A, the MRSA has two phases: multistart (i.e., first phase) and recombination (i.e., second phase). The first phase (i.e., multistart) generates N solutions and stores them in an array called pool (lines 2 to 5). Each solution is randomly initialized (line 3) and then improved using an algorithm called give-and-take

[0035] (line 4), which is designed to assign a subset of the spatial units to different regions in order to decrease the objective function value. The second phase of the MSRA is an iterative process that updates the pool M times through a loop (lines 6 to 13). Each time, a new pool of N solutions is created (lines 7 to 11), where each new solution is the result of recombining two random solutions from the current pool and then improving by the give-and-take (GAT) algorithm (lines 8 to 10).

[0062] The unique best solutions in the two pools M and N are used to replace the current pool (line 12). In this way, only the new solutions that are better than the old solutions will beincluded in the pool for the next iteration. This process ensures a set of unique solutions. The MRSA algorithm employs other algorithms, e.g., initialization, GAT, recombination, and supergraph, to implement the exemplary method. Parameters, including A and Af, are specified by the user, and they may affect the algorithm performance.

[0063] Fig. 4B shows an initialization algorithm (shown as Algorithm 2) employed by the MRSA (see Fig. 4A) to create a random solution (e.g., 208, Fig. 2B) to the aggregation problem. As shown in Fig. 4B, a random set of p nodes is first used as the seeds for the regions (lines 2-5). Here, a dot operator is utilized to return a part of the data related to a solution, e g., G. V returns the nodes (F) in the graph G (line 2).

[0064] The neighboring units of each seed are then continuously grouped to the seed to form the region set R until all the available nodes are used (lines 6 to 15). This process creates the region set R in the solution tuple, which may then be used to generate D and G’ (lines 16 and 17). The initialize algorithm returns the solution tuple (line 18). Line 6 suggests that the time complexity of the initialization algorithm is controlled by the number of nodes in the graph.

[0065] Each initial solution may be improved using the give-and-take algorithm (GAT)

[0035] , The general idea of GAT is to swap a number of units from a region that has a total weight higher than the ideal weight to a neighboring region with a total weight lower than the ideal. This idea may also be found in the literature under names such as ruin-and-recreate

[0036] ,

[0066] Fig. 4C shows an example give-and-take (GAT) algorithm (shown as Algorithm 3) employed by the AIRSA (see Fig. 4A) to generate improved solutions (e.g., 210, Fig. 2B) from an initial solution generated by an initialization algorithm (see Fig. 4B) or a recombination algorithm (see Fig. 4E).

[0067] As shown in Fig. 4C, the give-and-take algorithm takes four parameters as the inputs: a solution, the ideal weight, the number of iterations, and the number of units to swap. During each iteration, a set of regions (Z) that have their total weights lower than the ideal are identified (line 3). Lines 4 to 42 attempt to swap units between each of the low regions and an adjacent region with a total weight higher than the ideal. For each region in L, we find the adjacent regions (A) that have weights higher than the ideal (line 5). A Boolean variable swap is used to indicate if a swapping is possible: it is first set to false (line 6) and will be updated during the process when each high region is tested for swapping (lines 7 to 41). Lines 8 to 12 randomly pick an available high region ( / ?) adjacent to the current low region (Z) and identify all the spatialunits in I that are adjacent to h and vice versa. Lines 13 to 31 test if a swapping is possible. Here, lines 14 to 17 find a set of units in region h to be swapped to region I. The number of units to be swapped (m) from the high region (line 14) is specified by the user as an input. If the total weight to be swapped is greater than the current difference, the algorithm will try to search for units in the low region to be swapped back to the high region (lines 18 to 27). A swapping will be confirmed by setting swap to true if the net amount of weights to be swapped is not greater than the current difference (lines 28 to 30). The actual swapping is conducted in lines 32 to 40, where line 36 checks the validity of the solution by testing if the two new regions after swapping are contiguous.

[0068] Fig. 4D illustrates an example process implemented by the give-and-take algorithm, where an improved solution may be obtained after the GAT. Specifically, as shown in Fig. 4D, spatial units are aggregated into two regions. Numbers are the weights of the units. The ideal total weight is 70, The thick solid line separates the regions. In the solution shown in subpanel (A), the total weights for the left and right regions are 86 and 54, respectively, with a difference of 32. Two units in the left region (labeled bold) are hypothetically selected and then swapped to the right, becoming the solution shown in subpanel (B).

[0069] Since the weight swapped (34) is larger than the difference (32), to compensate for the left region, some units in the right region may be swapped back to the left. The left region should not be overcompensated. The unit with a weight of 19 is swapped to the left region.Consequently, a net weight of 15 (i.e., 34-19) is swapped to the right region, and the weights are now 71 and 69 for the left and right regions, respectively, and the difference is reduced to 2, as shown in subpanel (C). This process will be repeated a few times (through a user-specified parameter). Subpanels (C) and (D) illustrate a case when the units with weights of 18 and 19 are swapped, which leads to an optimal solution shown in subpanel (E).

[0070] Fig. 4E shows an example recombination algorithm (shown as Algorithm 4) employed by the MRSA (see Fig. 4A) to recombine the improved solutions (e.g., 212, Fig. 2B) generated from the give-and-take algorithm into new solutions.

[0071] As shown in Fig. 4E, line 2 creates a subgraph (G12) using the same nodes from the original graph, but its edges only include those common in the two input solutions. The subgraph G12 is needed to create a supergraph for the regions (line 3) using the supergraph algorithm shown in Fig. 4H. In addition to the supergraph, the recombination algorithm alsomaintains three other data structures for the convenience of the process: an integer n that will continuously increase for being used as the ID number of new combined regions (line 4), a region set Rvi where each element is another set containing nodes assigned to a region in the recombined solution (line 5), and an array Wo that holds the total weights of each region (line 6). The actual values of these data structures will be updated as the algorithm continues.

[0072] In the loop between lines 7 and 20, the recombination algorithm continues to merge regions until the required number of regions is reached. Here, given the region (n ) with the lowest weight (line 8), the recombination algorithm finds the neighboring regions m of the region n (line 9), the node ( ) with the lowest weight among the neighbors (line 10), and the neighboring regions of V2 denoted as m (line 12). Before merging the regions, the recombination algorithm may correct the ID number for the upcoming merged region (line 12). The recombination algorithm may merge regions n and r2 into n. As a result, the recombination algorithm updates the supergraph (lines 13 to 15), region assignments in Rn (lines 16 and 17), and the weights in Wo (lines 18 and 19). After the loop, the valid new solution in the region set R12 IS found, which may be used to create the assignment array D and the subgraph G’ (lines 21 and 22). The final solution tuple is returned in line 23.

[0073] There are two steps (e.g., first and second) m an example process implemented by the recombination algorithm (see Fig. 4E). Fig. 4F shows the first step of the example process that finds the common edges in the subgraphs of two solutions (e.g., solutions shown in subpanels (A) and B). The new subgraph formed by the common edges shown in subpanel (C) may be an invalid solution because there may be more regions than needed. In the example process, there are 5 regions, while the problem requires 2.

[0074] Fig. 4G shows the second step of the example process implemented by the recombination algorithm. Each node in the supergraph represents a region, as labeled in black numbers. Underlined nodes are to be merged. The light gray number labeled in each region is the total weight of that region.

[0075] As shown in Fig. 4G, the second step of the example process is to repair the invalid solution from the previous step by continuously merging neighboring regions until a valid solution is formed. In doing so, a supergraph may be constructed using the regions as the nodes, and two nodes are connected with an edge if the regions they represent are adjacent. At each iteration in the repair process, the process starts from the region with the lowest weight andmerges it to the neighboring region with the lowest weight. For example, node 3 is first merged with node 5 into a new node 6, as shown in Fig. 4G, subpanel (B). This process may continue until the required number of regions is reached, as shown in Fig. 4G, subpanels (C) and (D).

[0076] Fig. 4H shows an example supergraph algorithm (shown as Algorithm 5) employed by the recombination algorithm (see Fig. 4E) to build a supergraph from a list of connected subgraphs. As shown in Fig. 4H, a list of connected subgraphs (SG12) is used to contain each of the connected subgraphs (line 2). For example, a list of 5 subgraphs will be made for the combined solution shown in Fig. 4F, subpanel (C). The indices of the subgraphs in the list are used to indicate the regions. The supergraph algorithm then gets the number of subgraphs (line 3) and creates a graph with that many nodes but an empty set of edges (line 4). The edges need to be determined using information from the original graph in the nested loops that go through every pair of regions (lines 5 and 6).

[0077] Within the loops, the supergraph algorithm gets the nodes in the two regions (lines 7 and 8) and then gets the edges in the original graph that involve nodes in the two regions (line 9), which are used to construct a subgraph (line 10). The shortest path algorithm

[0037] may be used to test if there is a shortest path between two nodes in the two regions (line 11). The shortest path algorithm may be found in the literature and in many software packages

[0038] , Only one pair of nodes between the two regions should be tested. If the shortest path exists between the two nodes in the pair of nodes (line 12), the two regions are connected, and an edge between the two regions is added to the supergraph (line 13).

[0078] Parallel Multistart and Recombination Algorithm (PMRSA). The algorithms shown in Figs. 4A, 4B, 4C, 4E, and 4H can be implemented in Python. The graphs can be implemented using the NetworkX package [4], which provides convenient and efficient data structures and functions for graph representations and operations

[0039] , This package is useful in maintaining the solution tuple of (G, D, R, G"). For example, a NetworkX method called “connected components” [5] may be used to obtain a subgraph given the nodes and how they are connected.

[0079] As shown in Fig. 4A, the multistart and recombination algorithm (MSRA) includes two main loops. The operations in the first loop (lines 2 to 5) may run independently as each solution may be initialized and modified using the GAT without relying on each other. The second loop (lines 6 to 14) also exhibits similar independence because after the two solutions arechosen (line 7), the recombination (line 8) and the GAT (line 9) may run without relying on other solutions. Therefore, a parallel version of MSRA may be developed, where two parallel sessions (marked using the parfor keyword) are implemented.

[0080] Fig. 4B shows an example parallel multistart and recombination algorithm (i.e., Algorithm 6, PMRSA). As shown in Fig. 4B, the first session creates concurrent processes, where each process completes both initialization and the GAT. After the first session is completed, the second session starts by creating concurrent processes to carry out the three operations in lines 8 to 10. After all the processes in the second session are completed, the algorithm continues with a sequential loop to replace the worst solution in the pool (lines 11 to 16), These parallel sessions may be readily implemented using the Python package called “multiprocessing” [6],

[0081] In the parallel MSRA shown in Fig, 41, the tasks sent to the concurrent processes may not be fully balanced because both GAT and recombination use random numbers, and therefore, their running times will vary. It is possible to further decompose each task. For example, the loops in the GAT algorithm shown in Fig. 4C and the recombination algorithm shown in Fig. 4E may be parallelized as they contain many independent operations. The parallel MRSA may significantly reduce the computing time on a multicore desktop computer.

[0082] Experimental Results and Additional Examples

[0083] A study was conducted to develop a multistart and recombination system and method to find unique solutions to spatial aggregation problems, as described in relation to Figs.1-4.

[0084] The study developed and evaluated a multistart and recombination algorithm (MSRA) in finding diverse high-quality, namely optimal or near-optimal, solutions to aggregation problems. The study evaluated the impact of the parameters used m the MSRA on the performance by comparing the output from the MSRA on a set of benchmark problems with known best solutions published in the literature. The study also calculated the theoretical optimum objective function value of these problems using (2). If the total weight (PF) is divisible by the number of districts (p), theoretically, each region should have a total weight as same as the ideal weight (PF*), making the theoretical optimum value zero. Otherwise, a solution is theoretically optimum if the maximum difference between any two districts is I. Theoretical values are useful for comparison, but it is purely theoretical and an actual problem may not exhibit such a value.

[0085] Data sets and benchmark problems. Table 2 shows the data sets for the experiment.Table 2. Data sets for experiments.

[0086] As shown in Table 2, the study used two types of data (e.g., Grid, Iowa) for the experiments. The first type of data (i.e., Grid) included three synthetic rasters named Gridl, Grid2, and Grid3, with 25, 100, and 1000 cells, respectively, and the values in the cells were randomly assigned. As shown in the “Regions (p)” column in Table 2, the cells in each data set were aggregated into different numbers of regions. These numbers of regions were tested in previous studies

[0010] ,

[0026] and may be used for performance comparison.

[0087] The second type of data was the 2000 Iowa congressional redistricting, where the 99 counties were aggregated into 5 districts, using the 2000 population from the United States census data. According to the Iowa Constitution, 7 counties shall not be split for political redistricting purposes, a practice held for the past redistricting plans. While more recent census data were available, the Iowa redistricting problem for the year 2000 was widely tested and may serve as an ideal benchmark problem for testing new algorithms. The official redistricting of the year 2000

[0041] had an objective function value of 0.00808, and a number of alternative redistricting plans were documented with lower objective function values: 0.0045

[0026] , 0.0066

[0042] , 0.0011

[0027] , and 0.00075

[0042] ,

[0088] Computing environment. The study used a quad-core Xeon 2.8 GHz computer with two CPUs (a total of eight processors). The Python “multiprocessing” module does not specify the exact number of processors to be used but uses the number of processes and distributes them to different processors. To run the experiments, the study tested the number of processes ranging from 1 to 32. When the number of processes is 1, the study used the sequential MRS A shown in Fig. 4A that does not involve the “multiprocessing” package; otherwise, the study used the parallel MRSA shown in Fig. 4B.

[0089] Specifically, the study used the largest data (Grid3) with a fixed set of parameters: regions to be aggregated (?) at 10, the pool size (N) 40, the number of GAT iterations (7) 100, and the number of recombinations (M) 100. These values were chosen after numerous trials and represented the range of values tested in the study. For each number of processes, the study ran MRSA 10 times.

[0090] Table 3 shows the minimum, mean, and maximum objective function values and running times of the 10 runs, as well as the speedup values.Table 3. Objective function values and speedup values.Note’. Difference (%) = the percent of the difference between the max and min time from the mean,

[0091] As shown in Table 3, the 10 runs of the algorithms in each row were stable as the range between the minimal and maximal time used was small. The largest difference between the maximal and minimal running time was less than 5 percent of the mean time when the number of processes is 1. The speedup did not increase after the number of processes reached 8, which was the number of computer cores used in the experiments. Based on this result, the study ran the algorithm one time using 32 processes for all the experiments.

[0092] Multistart and recombination algorithm (MSRA) parameters. To analyze the impact of MSRA parameters, the study ran the algorithm on each of the three raster data setsusing different combinations of the parameter values listed in Table 4. The study applied the MSRA once for each combination of these parameters. The study did not test the impact of m on a specific number. Instead, m takes a random value between 2 and 6. The results listed in Table 4 suggest that the use of a random m value may yield a constant range of objective function values when other parameters are held the same.Table 4. MRS A parameters and ranges of their values for performance testing.

[0093] Running time analysis. The study analyzed the impact of the MRSA parameters on the running time. Fig. 5 A shows the running time of the MSRA for the data set of Grid3. For a given data set, the computation time (7) of running the MSRA may be affected by four factors: the number of regions (p), pool size (N), iterations in GAT (7), and the number of recombinations (M). The two loops in the MRSA algorithm shown in Fig. 4A (lines 6 and 7) suggest the running time should be controlled by N·M.

[0094] The study used regression models to further investigate how these four input parameters (e.g., p, N, I, M) affected the running time. To avoid including highly correlated variables (e.g., NMp and NM log p) in the same model, the study tested four groups of models: T = f(MN, MNI, MNp), T = f(MN, MN log I, MNp), T = f(MN, MNI, MN logp), and T = f(MN, MN√I, MNp). The best model in each group may include a subset of the independent variables, and two stepwise approaches were used to decide which independent variables should be included in the best model in each group. The study evaluated each regression model based on the Akaike information criterion (AIC), which used a maximum likelihood estimation to measure how a model fits the data while penalizing large models. The best model in each group shouldexhibit the lowest AIC value among all alternative models. The final model for each data set was the one with the lowest AIC value among the four groups, and all the coefficients were significant at 0.005.

[0095] The first stepwise approach of forward selection began with only the intercept, and then continuously added one term at a time. During each iteration, the model that yielded the lowest AIC value was kept and then used for the next round. The best model was found when additional terms added to the model started to increase the AIC value. The second approach, backward elimination, started with the full model using all the independent variables in each group and continuously removed one term that maximized the decrease of the AIC value at each iteration; the best model could be reached when the AIC value no longer decreased. All three data sets reached the same group of independent variables: MN, MNI and MNp. Table 5 shows the order in which the independent variables were added in each iteration (from the top downward to the bottom). The backward elimination process stopped at the first iteration for all the data sets.Table 5. Coefficients and evaluation for stepwise regression models.

[0096] Objective function values analysis. The study analyzed the impact of the MRSA parameters on the objective function values (e.g., mean, min, max). Fig. 5B shows the impact ofthe parameters on the objective function values for the Grid3 dataset with 20 regions (i.e., p = 20). In each plot, the three symbols on a vertical line indicate the solutions after initialization (circle), GAT (cross), and recombination (triangle) processes.

[0097] Specifically, first, significant improvements over the initial solution may be obtained using the GAT algorithm, and the improvement (indicated by the gap between the circle and cross symbols) increased when the GAT iteration (7) increased. Second, the impact of the recombination process was critical: even though the GAT algorithm may yield high-quality solutions, the use of the recombination method brought the final solution to a lower value (the triangles were always placed at the bottom of each plot, notwithstanding the GAT iterations). Third, the use of GAT after recombination was essential. For example, in the problem of p = 20 for Grid3 with 10 recombination and a pool size of 10, the final solutions in the pool using 10 GAT iterations ranged from 0.690 to 2,878, but when GAT iterations (7) increased to 100, and other parameters remained the same, the solutions showed significant improvement, ranging from 0.068 to 0.133.

[0098] Solution pool analysis. The study analyzed the impact of the MRS A parameters on the solution pools. Fig. 5C shows how the range of objective function values of the solutions in the pool changed in response to different combinations of the MSRA parameters for the data set of Grid3. Only unique solutions were included in the pool.

[0099] When the minimal and maximal objective values were the same, all the solutions had the same objective function value but different spatial configurations. A small number of GAT iterations (7) and recombinations (M) often led to large gaps between the solutions in the pool, as shown in the plots on the left panel of each figure (7 = 10). Increasing the pool size did not make it more difficult for the solutions to converge, as the gap did not increase with N when other parameters were maintained the same. The benefit of using the solution pool was to obtain a set of solutions that otherwise may be difficult to obtain.

[0100] Robustness. For an algorithm to be functional and practical, it should be performed on a robust basis, meaning different runs of the algorithm on the same problem should yield similar results. It is reasonable to expect variations between runs for a heuristic method like the MSRA, but robustness is also desired. Table 3 already shows the MSRA may yield stable results in multiple runs. Here, the study further explored the details by running the algorithm 100 times with the same set of parameters on Grid3: 10 regions to aggregate, 100 GAT iterations,100 recombination iterations, and a pool size of 40. Fig. 5D shows the objective function values (e.g., initial max, initial min, GAT max, GAT mean, GAT min) when running the MSRA for 100 times on Grid3. The variation between runs decreased from the initial solutions to the final ones. The final solutions exhibited very small variations, between the minimal objective function value of 0.0040 (the flat line at the bottom in the right plot) and the maximum of 0.0067. Each of the 100 runs had the same minimum and maximum values in the final pool, both exactly the same as in Table 3. The plots in Fig. 5D also suggested the effect of the GAT and recombination for the given problem, where the maximum values from the GAT were close to the minimum values of the initialization process, and the final results in the pool were improved over the GAT results.

[0101] Optimality and diversity analysis. The study also tested the MSRA on all problems. The study set the size of the pool (N) to 50 for all cases, which yielded 50 unique solutions for each problem. A high value in the number of GAT iterations (7) and recombinations (M) may lead to better solutions being found and may increase the computation time. The values of the other parameters approximately increased with the size of the problem,

[0102] Table 6 shows the parameters used for each test problem and the results in objective function values and computing time. The “Benchmark” column of Table 6 lists the best-known solutions in the field. The minimal and maximal objective function values in the pool were listed in the “Alm” and “Max” columns, respectively, in Table 6. Except for the problem of Grid3 with p = 20 and Iowa 2000, all other benchmarks matched the theoretical optimal values (see Table 1). The theoretical optimal value may not be feasible due to the way theoretical values were computed. The best results generated by the MSRA, as listed in the “Min” column, were either equal to or smaller (better) than the benchmark solutions of the problems.Table 6. Experimental results for the MSRA running on all data sets

[0103] The algorithm may not only find and confirm the best solutions, but also find many of such solutions in the pool. These solutions had different spatial configurations but had the same optimal objective function value or similar near-optimal values. For example, all the 50 final solutions in the pool for the problem with Gridl and p = 2 were optimal with an objective function of 0, but these were different solutions as they differed in their spatial configurations. Fig. 5E shows the maps generated by MSRA on the Grid1 dataset. The first row of maps in Fig. 5E shows some of the different solutions in the pool. The same trait may be found for other problems: Grid2 with all three p values, Grid3 with p being 5 and 10 (as the minimum and maximum objective values were the same for each of these cases in Table 6).

[0104] For some problems (Grid1 with p being 3 and 4, and Grid3 with p being 20), not all the solutions in the pool were optimal, which should be reasonable because there was no guarantee that each problem may have 50 optimal solutions found, and the study did not knowhow many such optimal solutions existed for each problem. The MSRA may still find many different optimal solutions. For example, for Grid1 with p = 3, the maximal objective function value in the solutions was 0.52, while the optimal objective function value was 0. The first 30 solutions to this problem (Gridl with p = 3) in the pool were all optimal with an objective function value of 0 (the middle row of maps in Fig. 5E). Similar trends may be found in the results for problems using data sets Grid2 and Grid3, as shown in Figs. 5F - 5G, respectively.

[0105] Fig. 5F shows the maps generated by MSRA on the Grid2 data set. As shown in Fig. 5F, each row shows the results for 3, 4, and 5 regions, respectively. The 5 maps in each row are the number 1, 2, 30, 49, and 50 solutions in the pool, respectively.

[0106] Fig. 5G shows the maps generated by MSRA on the Grid3 data set. As shown in Fig. 5G, each row shows the results for 5, 10, and 20 regions, respectively. The 4 maps in each row are the number 1, 20, 40, and 50 solutions in the pool.

[0107] Fig. 5H shows the results generated by MSRA on the Iowa 2000 data set. All the 50 solutions found by the multistart algorithm exhibited smaller objective function values than that of the official redistricting plan (0.0080). The upper-left map in Fig. 5H shows the best solution found with an objective function value of 0.00017. which was better than the best solution reported in the public. The rightmost map in the second row had an objective function value of 0.00366 and was the “worst” m the pool, but it was still a high-quality solution, given the fact that all solutions with an objective function value smaller than 0.01 (or 1 percent) may be considered as acceptable by the redistricting standard [9],

[0108] C 'omparison with the Sequential Monte Carlo (SMC) algorithm. The study compared the MSRA with a recent method called the sequential Monte Carlo (SMC) algorithm

[0032] , SMC was one of the methods that may be used to generate a large number of good redistricting plans by sampling solutions from a probability distribution calculated based on weighted criteria such as population balance and compactness

[0043] , By sequentially adjusting the probability distribution that favored more desirable regions in terms of their weights, plans generated by the SMC algorithm often converged to a target distribution set by the user. This method was implemented in an open-source R package called “redisf ’

[0044] ,

[0109] The “redist” package used a different objective function from Equation 2.Specifically, the SMC algorithm minimized the maximum deviation of the districts from the average population, as shown in Equation 4.Wjmin max — — - 1l< / <p W / p(Eq. 4)

[0110] In Equation 4, W is the total population. The study recomputed the objective function values of the solutions generated by the SMC algorithm using Equation 2 to compare them with those from the MSRA.

[0111] The study tested the SMC algorithm on the Iowa data. Plans (i.e., results, solutions) generated by the SMC function in the “redist” package had objective function values that were, when possible, smaller than a user-specified deviation level (called population tolerance in “redist”). In this experiment, the study used three different tolerance settings: 0.001, 0.0001, and 0.00005. The study set the number of solutions to be generated to 500. However, theSMC algorithm did not guarantee to generate unique solutions, which was especially the case when a very low population tolerance was used.

[0112] Table 7 shows the comparison between the results generated by the SMC and by the MSRA. Fig. 51 shows the distributions of the objective function values of the results generated by MSRA and SMC (e.g., at various tolerance levels), as shown in Table 7.Table 7. Results (e.g., solutions) generated by MSRA and SMC running on the Iowa data set.

[0113] As shown in Fig. 5I and Table 7, the solutions generated by the MSRA had the minimum and maximum objective function values lower than those of the SMC-generated solutions. The pool of solutions in the MSRA was maintained to guarantee the number of unique solutions specified by the user. Further lowering the population tolerance in the SMC could help find solutions with lower objective function values, but doing so could decrease the diversity in the solutions and increase the computational time. In the study, among the 500 solutions generated at a 0.00005 tolerance level, only 15 were unique.

[0114] Additional Discussion

[0115] Spatial data is aggregated for different reasons and purposes. For example, to protect individual identities, the United States Census Bureau publishes the population data by aggregating individual counts into a set of low-level spatial units, such as blocks, which are then aggregated into higher-level units, such as block groups and tracts. In another example, also in the United States, population counts in low-level census units (e.g., blocks or counties) within a state are aggregated into congressional districts that are supposed to have equal or nearly equal populations [I], [2], This process is also known as political redistricting, a part of Americandemocracy that supports the “one person, one vote” principle and, in turn, promotes a sense of local community among congressional representatives. Similar processes of spatial aggregation can also be found in many countries for districting purposes in applications such as electrical power [3], [4], public schools [5], [6], and service area design [7],

[0116] A specific type of spatial aggregation problem can be formulated as an optimization problem when the goal is to minimize the difference between the grouped regions. Census tracts, for example, have an optimal design population size of 4,000 [8]. Similarly, political or school districts are often required to have equal populations or student enrollments across the districts [9], Because there are many possible ways to aggregate spatial units, given a specific set of spatial aggregations (e.g., census tracts), one may wonder whether the chosen aggregation is optimal and whether there are alternative aggregations that are equally good or better. The literature shows that, given an aggregation problem, multiple aggregation plans may yield the same population equality measure

[0010] , Exploring alternatives to an aggregation problem is not only necessary but also important.

[0117] Many states in the United States have begun using geographic information systems (GIS) to manually devise their congressional districts using techniques such as cracking and packing. For example, the Maptitude for Redistricting Software has been used by various political parties, states, and institutions [11— 14]. As a consequence, perfect redistricting plans have emerged in the past two decades. For example, the Ohio population in the 2010 census was 11,536,504, and 16 congressional districts were apportioned for the 113d’ congressional districts. This makes the ideal population for each district 721,031. Among the 16 districts, 9 have exactly the ideal population, and the remaining 8 have one person more than the ideal population. Other states, such as Alabama, Arizona, Colorado, Florida, North Carolina, Oklahoma, Rhode Island, South Carolina, Tennessee, and Wisconsin, also have the same type of “perfect” redistricting plans in 2010.

[0118] Using computers to find alternative aggregations has a long history in the spatial optimization and political redistricting literature, where various computational methods have been developed to search for effective alternatives. Much of the effort to develop exact methods focuses on finding the global optimal solution to the problem, and this progress has led to the successful formulation of spatial contiguity’

[0010] , [15-17], a critical constraint requiring units forming a region or district to be contiguous. However, this line of research has also clearlyestablished that it is an improbable path to solving the problems using exact methods due to excessive computational intensity

[0010] , [17-19], Another approach is heuristics, which can often find high-quality (optimal or near-optimal) solutions to the problem, and many such methods have been developed in the literature [20-28], These methods have been useful in spatial aggregation applications [29-31], However, none of these algorithms is designed to address a critical problem: how to find multiple solutions that are equally good when evaluated using traditional criteria. Instead, current algorithms often aim to find one such solution. This limitation hinders the widespread application of computational methods in aggregation problems, as they cannot offer a large number of alternatives for user consideration (e.g., decision makers, stakeholders).

[0119] Conclusion

[0120] The construction and arrangement of the systems and methods, as shown in the various implementations, are illustrative only. Although only a few implementations have been described in detail in this disclosure, many modifications are possible (e.g., variations in sizes, dimensions, structures, shapes, and proportions of the various elements, values of parameters, mounting arrangements, use of materials, colors, orientations, etc.). For example, the position of elements may be reversed or otherwise varied, and the nature or number of discrete elements or positions may be altered or varied. Accordingly, all such modifications are intended to be included within the scope of the present disclosure. The order or sequence of any process or method steps may be varied or re-sequenced according to alternative implementations. Other substitutions, modifications, changes, and omissions may be made in the design, operating conditions, and arrangement of the implementations without departing from the scope of the present disclosure.

[0121] The present disclosure contemplates methods, systems, and program products on any machine-readable media for accomplishing various operations. The implementation of the present disclosure may be implemented using existing computer processors, or by a specialpurpose computer processor for an appropriate system, incorporated for this or another purpose, or by a hardwired system. Implementations within the scope of the present disclosure include program products including machine-readable media for carrying or having machine-executable instructions or data structures stored thereon. Such machine-readable media may be any available media that may be accessed by a general-purpose or special-purpose computer or othermachine with a processor. By way of example, such machine- readable media may comprise RAM, ROM, EPROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which may be used to carry or store desired program code in the form of machine-executable instructions or data structures, and which may be accessed by a general purpose or special purpose computer or other machine with a processor.

[0122] When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a machine, the machine properly views the connection as a machine-readable medium. Thus, any such connection is properly termed a machine-readable medium.Combinations of the above are also included within the scope of machine-readable media.Machine-executable instructions include, for example, instructions and data that cause a general-purpose computer, special-purpose computer, or special-purpose processing machines to perform a certain function or group of functions.

[0123] Although the figures show a specific order of method steps, the order of the steps may differ from what is depicted. Also, two or more steps may be performed concurrently or with partial concurrence. Such variation will depend on the software and hardware systems chosen and on the designer's choice. All such variations are within the scope of the disclosure. Likewise, software implementations could be accomplished with standard programming techniques, with rule-based logic and other logic to accomplish the various connection steps, processing steps, comparison steps, and decision steps.

[0124] Each and every feature described herein, and each and every combination of two or more of such features, is included within the scope of the present invention, provided that the features included in such a combination are not mutually inconsistent.

[0125] Although example embodiments of the disclosed technology are explained in detail herein, it is to be understood that other embodiments are contemplated. Accordingly, it is not intended that the disclosed technology be limited in its scope to the details of construction and arrangement of components set forth in the following description or illustrated in the drawings. The disclosed technology is capable of other embodiments and of being practiced or carried out in various ways.

[0126] It must also be noted that, as used in the specification and the appended claims, the singular forms “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise. Ranges may be expressed herein as from “about” or “approximately” one particular value and / or to “about” or “approximately” another particular value. When such a range is expressed, other exemplary embodiments include from the one particular value and / or to the other particular value.

[0127] By “comprising” or “containing” or “including” is meant that at least the named compound, element, particle, or method step is present in the composition or article or method, but does not exclude the presence of other compounds, materials, particles, method steps, even if the other such compounds, material, particles, method steps have the same function as what is named.

[0128] Unless otherwise expressly stated, it is in no way intended that any method set forth herein be construed as requiring that its steps be performed in a specific order.Accordingly, where a method claim does not actually recite an order to be followed by its steps or it is not otherwise specifically stated in the claims or descriptions that the steps are to be limited to a specific order, it is no way intended that an order be inferred, in any respect. This holds for any possible non-express basis for interpretation, including: matters of logic with respect to the arrangement of steps or operational flow; plain meaning derived from grammatical organization or punctuation; the number or type of embodiments described in the specification.

[0129] While the methods and systems have been described in connection with certain embodiments and specific examples, it is not intended that the scope be limited to the particular embodiments set forth, as the embodiments herein are intended in all respects to be illustrative rather than restrictive.

[0130] The following patents, applications, and publications, as listed below and throughout this document, are hereby incorporated by reference in their entirety herein.Reference List[1] Morrill RL (1981) Political Redistricting and Geographic Theory. Association of American Geographers, Washington, D. C.[2] Williams JC Jr (1995) Political redistricting: a review. Pap Reg Sci 74(1): 13-40.[3] Bergey PK, Ragsdale CT, Hoskote M (2003) A decision support system for the electrical power districting problem. Decis Support Syst 36:1-17.[4] De Assis LS, Franca PM, Usberti FL (2014) A redistricting problem applied to meter reading in power distribution networks. Comput Oper Res 41: 65-75.[5] Ferland JA, Guenette G (1990) Decision support system for the school districting problem.Oper Res 38(1): 15-21.[6] Biswas S (2022) Spatial optimization techniques for school redistricting. PhD thesis, Virginia Tech.[7] Benzarti E, Sahin E, Dallery Y (2013) Operations management applied to home care services: analysis of the districting problem. Decis Support Syst 55(2):587-598.[8] U. S. Census Bureau (2021) TIGER / Line shapefiles technical documentation. Tech Rep, [9] Kalcsics J, Rios-Mercado RZ (2019) Districting problems. In: Laporte, G., Nickel, S., Saldanha da Gama, F. (eds.) Location Science, Springer, Cham, pp 705-743,

[0010] Kim MJ, Xiao N (2017) Contiguity-based optimization models for political redistricting problems, Int J Appl Geospatial Res 8(4): 1-18,

[0011] Monmonier M (2001) Bushmanders & Bullwinkles. The University of Chicago Press, Chicago, p 208.

[0012] Toobin J (2003) The great election grab: When does gerrymandering become a threat to democracy? New Yorker (December 8):63-80.

[0013] Epstein RJ (2021) Possible Map For Illinois Aims to Grab GO P. Seats. The New York Times (October 16): 15.

[0014] McKinley J (2022) Man Behind the Maps: New York’s Most Unexpected Power Broker.The New York Times (May 29): 13.

[0015] Garfinkel RS, Nemhauser GL (1970) Optimal political districting by implicit enumeration techniques. Manage Sci 16:495-508.

[0016] Shirabe T (2005) A model of contiguity for spatial unit allocation. Geogr Anal 37(1):2-16.

[0017] Duque JC, Church RL, Middleton RS (2011) The p-regions problem. Geogr Anal 43(1): 104-126.

[0018] Duque JC, Ramos R, Surinach J (2007) Supervised regionalization methods: a survey. Int Reg Sci Rev 30(3): 195-220. https: / / doi.org / 10.1177 / 016001760730105.

[0019] Shirabe T (2009) Districting modeling with exact contiguity constraints. Environment and Planning B, Planning & Design 36(6): 1053-1066.

[0020] Weaver JB, Hess S (1963) A procedure for non-partisan districting. Yale Law J 73:288-309

[0021] Hess SW, Weaver JB, Siegfeldt HJ, Whelan JN, Zitlau PA (1965) Nonpartisan political redistricting by computer. Oper Res 13: 998-1006.

[0022] Nagel SS (1965) Simplified bipartisan computer redistricting. Stanford Law Review 17:863-899.

[0023] Liittschwager JM (1973) The iowa redistricting system. Ann N Y Acad Sci 219:221-235

[0024] Macmillan W, Pierce T (1994) Optimization modelling in a GIS framework: the problem of political redistricting. In: Fotheringham S, Rogerson P (eds) Spatial Analysis and GIS. Taylor & Francis, London, pp 221-246.

[0025] Openshaw S, Rao L (1995) Algorithms for reengineering 1991 census geography. Environ Plan A 27:425-446.

[0026] Xiao N (2008) A unified conceptual framework for geographical optimization using evolutionary algo-rithms. Ann Assoc Am Geogr 98(4): 795-817.

[0027] Guo D, Jin H (2011) iredistrict: geovisual analytics for redistricting optimization. Journal of Visual Languages & Computing 22(4): 279-289.

[0028] Liu YY, Cho WKT, Wang S (2016) PEAR: a massively parallel evolutionary computation approach for political redistricting optimization and analysis. Swarm Evol Comput 30:78- 92.

[0029] Altman M (1995) Is automation the answer? - the computational complexity of automated redistricting. Rutgers Comput Technol Law J 23(1): 81-142.

[0030] Altman M, MacDonald K, McDonald M (2005) From crayons to computers: the evolution of computer use in redistricting. Soc Sci Comput Rev 23(3)334-346.

[0031] Cockings S, Martin D (2005) Zone design for environment and health studies using preaggregated data. Soc Sci Med 60(12): 2729-2742.

[0032] McCartan C, Imai K (2023) Sequential monte carlo for sampling balanced and compact redistricting plans. Ann Appl Stat 17(4)3300-3323.

[0033] DeFord D, Duchin M, Solomon J (2021) Recombination: a family of markov chains for redistricting. Harvard Data Sci Rev 3(1 ): 3.

[0034] Dobbs KW, King DM, Jacobson SH (2023) Redistricting optimization with recombination:a local search case study. Comput Oper Res 160:106369.

[0035] Kim MJ (2019) Give-and-take heuristic model to political redistricting problems. Spat Inf Res 27(5): 539-552.

[0036] Schrimpf G, Schneider J, Stamm-Wilbrandt H, Dueck G (2000) Record breaking optimization results using the ruin and recreate principle. J Comput Phys 159(2): 139-171.

[0037] Dijkstra EW (1959) A note on two problems in connexion with graphs. Numer Math 1:269- 271.

[0038] Xiao N (2016) GIS Algorithms. SAGE Publications, London, p 336.

[0039] Hagberg A, Swart P, Schult D (2008) Exploring network structure, dynamics, and function using Net-workX. In: Proceedings of the 7th python in science conference, Pasadena, CA, pp 11-16.

[0040] Gorder PF (2007) Multicore processors for science and engineering. Comput Sci Eng 9(2): 3-7.

[0041] Bolender D, Cook E (2000) Second redistricting plan. Report to secretary of the iowa senate, Iowa Leg-islative Service Bureau. Online. https: / / www.legis.iowa.gov / docs / resources / redist / 2001 / June2001report.htm. Accessed 11 Feb 2023.

[0042] Kim MJ (2011) Optimization approaches to political redistricting problems. PhD thesis, The Ohio State University, Columbus, OH.

[0043] Kenny CT, Kuriwaki S, McCartan C, Rosenman ET, Simko T, Imai K (2021) The use of differential privacy for census data and its impact on redistricting: the case of the 2020 us census. Sci Adv 7(41):3283.

[0044] Kenny CT, McCartan C, Fifield B, Imai K (2022) redist: simulation methods for legislative redistricting. R package, https: / / alarm-redist.org / redist.

[0045] Altman M (1998) Modeling the effect of mandatory district compactness on partisan gerrymanders. Polit Geogr 17(8): 989-1012.

[0046] Kaufman AR, King G, Komisarchik M (2021) How to measure legislative district compactness if you only know7it when you see it. Am J Polit Sci 65(3):533-550.

[0047] Rossiter KM, Wong DW, Delamater PL (2018) Congressional redistricting: keeping communities together? Prof Geogr 70(4):609-623.

[0048] Canon DT (2022) Race and redistricting. Annu Rev Polit Sci 25:509-528.

[0049] Xiao N (2018) Considering diversity in spatial decision support systems. In: Thill J-C, Dragi'cevi'cS(eds) geocomputational analysis and modeling of regional systems.Springer, Cham, pp 23-35.

[0050] Goldberg DE (1989) Genetic Algorithms in Search. Optimization and Machine Learning. Addison- Wesley, Reading, MA.

[0051] Xiao N (2006) An evolutionary algorithm for site search problems. Geogr Anal 38(3):227- 247.

[0052] Eiben AE, Schippers CA (1998) On evolutionary’ exploration and exploitation. Fund Inform 35(l-4):35-50.

[0053] Crepinsek M, Liu S-H, Mernik M (2013) Exploration and exploitation in evolutionary' algorithms: a survey. ACM Comput Surv 45(3): 1-33,

[0054] Williams JC (2001) A linear-size zero-one programming model for the minimum spanning tree problem in planar graphs. Networks 39(1): 53-60.

[0055] Foster I, Kesselman C (eds) (2003) The Grid 2: Blueprint for a New Computing Infrastructure, Morgan Kaufmann, San Francisco.

[0056] Antonopoulos N, Gillam L (2010) Cloud Computing. Springer, London.

[0057] Openshaw S (1983) The Modifiable Areal Unit Problem. Geo Books, Norwich, p 41.

[0058] Longley PA, Goodchild MF, Maguire DJ, Rhind DW (eds) (1997) Geographic Information Systems: Princepies, Techniques. Applications and Management. Wiley, New York.

[0059] Martin D (1998) Optimizing census geography: the separation of collection and output geographies. Int J Geogr Inf Syst 12(7):673-685.

[0060] Xiao, Ningchuan, et al. "A multistart heuristic approach to spatial aggregation problems." International Conference on GIScience Short Paper Proceedings. Vol. 1. No. 1. 2016.

[0061] U. S. Patent Publication No. 2008 / 0177555.

[0062] U. S. Patent Publication No. 2018 / 0342030.

[0063] U. S. Patent Publication No. 2021 / 0390650.

Claims

What is claimed:

1. A method for determining a voting district map comprising:analyzing, by a processor, a voting district map as a spatial aggregation problem of a graph G containing a set of free nodes and a set of edges connecting the free nodes comprising:receiving assignment data;generating one or more initial random solutions, including a first initial random solution;generating one or more initial solutions, including a first initial solution, from the first initial random soluti on containing a set of regions;generating one or more recombined solutions, including a first recombined solution, from the one or more initial solutions;generating a solution tuple including at least one of the assignment array, the set of regions, and a set of subgraphs; andoutputting one or more visual izations for, at least, a portion of the assignment array, a portion of the set of regions, or a portion of the set of subgraphs, wherein each visualization of the assignment array, the set of regions, or the set of subgraphs defines a revised voting district map to be used to establish assignment of districts in a voting district.

2. The method of claim 1, wherein the one or more initial random solutions are generated by:(i) selecting two or more seed nodes from the set of free nodes, including a first seed node and a second seed node;(li) generating a first region by grouping two or more free nodes in the set of nodes nearest to the first seed node, including a first free node and a second free node;(hi) generating a second region by grouping two or more nodes in the set of nodes nearest to the second seed node, including a third free node and a fourth free node;(iv) assigning the first seed node to the first region using the assignment data (e.g., input data G);(v) assigning the second seed node to the second region using the second assignment rule; (vi) generating the set of regions by grouping the first region and the second region;(vii) generating a subgraph using the set of regions, wherein the set of regions contains the first and the second regions; and(viii) generating a tuple containing the assignment array, the set of regions, and the subgraph.

3. The method of claim 1, wherein the one or more initial solutions are generated by:(i) receiving an ideal weight for a region;(ii) reconfiguring the weight of the first region in the set of regions by:(a) identifying one or more adjacent regions to the first region, including a first adjacent region, from the set of regions; and(b) providing a first temporary node from the first region to the first adjacent region and a second temporary node from the first adjacent region to the first region until the weight of the first region is below or equal to the ideal weight for a region; and(iii) reconfiguring the weight of the first adjacent region in the set of regions by providing a third temporaiy node from the first adjacent region to the first region and a fourth temporary node from the first adjacent region to the first region until weight of the second region is below the ideal weight for a region.

4. The method of claim 1, wherein the one or more recombined solutions are generated by:(i) receiving a first subgraph from a first improved solution;(ii) receiving a second subgraph from a second improved solution;(iii) generating a third subgraph by repetitively merging the first subgraph and the second subgraph using common regions in the two subgraphs; and(iv) generating the set of subgraphs, including at least the third subgraph.

5. The method of claim 4, wherein merging the first subgraph and the second subgraph is determined by:receiving common nodes between the common regions in the two subgraphs; and generating a shortest path connecting the common nodes between the common regions in the two graphs using a shortest path algorithm.

6. The method of claim 4, wherein the repetitively merging of the first subgraph and the second subgraph is performed by merging a node with a smallest weight to an adjacent weight with a lowest weight.

7. The method of claim 1, w’herein generating one or more initial random solutions, generating one or more initial solutions, and generating one or more recombined solutions are concurrently executed in a multiprocessing operation.

8. The method of claim 1, wherein weight of a region is a population value.

9. A system comprising:a processor; anda memory having instructions stored thereon, wherein execution of the instructions by the processor causes the processor to:analyze a voting district map as a spatial aggregation problem of a graph G containing a set of free nodes and a set of edges connecting the free nodes by:receiving assignment data;generating one or more initial random solutions, including a first initial random solution;generating one or more initial solutions, including a first initial solution, from the first initial random solution containing a set of regions;generating one or more recombined solutions, including a first recombined solution, from the one or more initial solutions;generating a solution tuple including at least one of the assignment array, the set of regions, and a set of subgraphs; andoutputting one or more visualizations for, at least, a portion of the assignment array, a portion of the set of regions, or a portion of the set of subgraphs, wherein each visualization of the assignment array, the set of regions, or the set of subgraphs defines a revised voting district map to be used to establish assignment of districts in a voting district.

10. The system of claim 9, wherein the instructions to generate the one or more initial random solutions include instructions to:(i) select two or more seed nodes from the set of free nodes, including a first seed node and a second seed node;(ii) generate a first region by grouping two or more free nodes in the set of nodes nearest to the first seed node, including a first free node and a second free node;(iii) generate a second region by grouping two or more nodes in the set of nodes nearest to the second seed node, including a third free node and a fourth free node;(iv) assign the first seed node to the first region using the first assignment rule;(v) assign the second seed node to the second region using the second assignment rule; (vi) generate the set of regions by grouping the first region and the second region;(vii) generate a subgraph using the set of regions, wherein the set of regions contains the first and the second regions; and(viii) generate a tuple containing the assignment array, the set of regions, and the subgraph.

11. The system of claim 9, wherein the instructions to generate the one or more initial solutions include instructions to:(i) receive an ideal weight for a region;(ii) reconfigure the weight of the first region in the set of regions by:(a) identifying one or more adjacent regions to the first region, including a first adjacent region, from the set of regions; and(b) providing a first temporary node from the first region to the first adjacent region and a second temporary node from the first adjacent region to the first region until the weight of the first region is below or equal to the ideal weight for a region; and(iii) reconfigure the weight of the first adjacent region in the set of regions by providing a third temporary node from the first adjacent region to the first region and a fourth temporary node from the first adjacent region to the first region until weight of the second region is below the ideal weight for a region.

12. The system of claim 9, wherein the instructions to generate the one or more recombined solutions include instructions to:(i) receive a first subgraph from a first improved solution;(ii) receive a second subgraph from a second improved solution;(iii) generate a third subgraph by repetitively merging the first subgraph and the second subgraph using common regions in the two subgraphs; and(iv) generate the set of subgraphs, including at least the third subgraph.

13. The system of claim 9, wherein the instructions to merge the first subgraph and the second subgraph include instructions to:receive common nodes between the common regions in the two subgraphs; and generate a shortest path connecting the common nodes between the common regions in the two graphs using a shortest path algorithm.

14. The system of claim 12, wherein the instructions to repetitively merge the first subgraph and the second subgraph are performed by merging a node with a smallest weight to an adjacent weight with a lowest weight.

15. The system of claim 9, wherein the instructions to generate the one or more initial random solutions, generate the one or more initial solutions, and generate the one or more recombined solutions are concurrently executed in a multiprocessing operation (i.e., package).

16. A non-transitory computer-readable medium having instructions stored thereon, wherein execution of the instructions by a processor causes the processor to:analyze a voting district map as a spatial aggregation problem of a graph G containing a set of free nodes and a set of edges connecting the free nodes by:receiving assignment data;generating one or more initial random solutions, including a first initial random solution;generating one or more initial solutions, including a first initial solution, from the first initial random solution containing a set of regions;generating one or more recombined solutions, including a first recombined solution, from the one or more initial solutions;generating a solution tuple including at least one of the assignment array, the set of regions, and a set of subgraphs; andoutputting one or more visualizations for, at least, a portion of the assignment array, a portion of the set of regions, or a portion of the set of subgraphs, wherein each visualization of the assignment array, the set of regions, or the set of subgraphs defines a revised voting district map to be used to establish assignment of districts in a voting district.

17. The non-transitory computer-readable medium of claim 16, wherein the instructions to generate the one or more initial random solutions include instructions to:(i) select two or more seed nodes from the set of free nodes, including a first seed node and a second seed node;(ii) generate a first region by grouping two or more free nodes in the set of nodes nearest to the first seed node, including a first free node and a second free node;(iii) generate a second region by grouping two or more nodes in the set of nodes nearest to the second seed node, including a third free node and a fourth free node;(iv) assign the first seed node to the first region using the first assignment rule;(v) assign the second seed node to the second region using the second assignment rule; (vi) generate the set of regions by grouping the first region and the second region;(vii) generate a subgraph using the set of regions, wherein the set of regions contains the first and the second regions; and(viii) generate a tuple containing the assignment array, the set of regions, and the subgraph.

18. The non-transitory computer- readable medium of claim 16, wherein the instructions to generate the one or more initial solutions include instructions to:(i) receive an ideal weight for a region;(ii) reconfigure the weight of the first region in the set of regions by:(a) identifying one or more adjacent regions to the first region, including a first adjacent region, from the set of regions; and(b) providing a first temporary node from the first region to the first adjacent region and a second temporary node from the first adjacent region to the first region until the weight of the first region is below or equal to the ideal weight for a region; and(iii) reconfigure the weight of the first adjacent region in the set of regions by providing a third temporary node from the first adjacent region to the first region and a fourth temporary node from the first adjacent region to the first region until weight of the second region is below the ideal weight for a region.

19. The non-transitory computer-readable medium of claim 16, wherein the instructions to generate the one or more recombined solutions include instructions to:(i) receive a first subgraph from a first improved solution;(ii) receive a second subgraph from a second improved solution;(iii) generate a third subgraph by repetitively merging the first subgraph and the second subgraph using common regions in the two subgraphs; and(iv) generate the set of subgraphs, including at least the third subgraph.

20. The non-transitory computer-readable medium of claim 19, wherein the instructions to merge the first subgraph and the second subgraph include instructions to:receive common nodes between the common regions in the two subgraphs; and generate a shortest path connecting the common nodes between the common regions in the two graphs using a shortest path algorithm.