Customer clusters

The greenfield problem can grow very large and complex when handling a sizable number of customers (1000+). For n customers in a model, the number of variables and constraints generated in a Greenfield solve is n^2. As a result, solve time will be greatly increased with more customers.

In order to avoid the increasing size and complexity of the problem, Greenfield Analysis has the ability to create "Customer Clusters".  You can set the radius for these clusters when you run the Greenfield Analysis using the Customer Cluster Radius on the Greenfield Analysis tab in Network Optimization Options. The larger the cluster size, the faster the problems will solve. The process for constructing clusters is as follows:

  1. Initially, no customers are part of a cluster.
  2. Customers that are closest in distance (and less than a specified internal threshold) are grouped together to form a new cluster. In the image below, A and B are grouped as a cluster, and C and D are grouped as another cluster.
  3. The solver continues to merge customers until the merging distance meets the Customer Cluster Radius (defined on the Greenfield Analysis tab in Network Optimization Options).

In the image below, for the two clusters (A and B):

  • The distance between any pair of customers within A or B is less than the Customer Cluster Radius.
  • The distance between customers in different clusters may also be less than the Customer Cluster Radius. For example, customer a and customer b are assigned to different clusters, but the distance between them is less than the Customer Cluster Radius.

The clusters are used to reduce the complexity of finding the potential locations of the DCs, but the customer assignment problem is still solved at the individual customer level. It is highly recommend that you build clusters for larger problems as they do not significantly degrade the solution, while they can decrease the solve time from days to minutes. When using Clustering with Last Mile Service Constraints, occasional breaching of the selected service inputs can result.

Last modified: Friday May 12, 2023

Is this useful?