The Varignon frame, named after Pierre Varignon, is a mechanical device which can be used to determine an optimal location of a warehouse for the distribution of goods to a set of shops.
Optimal means that the sum of the weighted distances of the shops to the warehouse should be minimal.
The frame consists of a board with n holes corresponding to the n shops at the locations
, n strings are tied together in a knot at one end, the loose ends are passed, one each, through the holes and are attached to weights below the board (see diagram).
If the influence of friction and other odds of the real world are neglected, the knot will take a position of equilibrium
It can be shown (see below), that point
is the optimal location which minimizes the weighted sum of distances The optimization problem is called Weber problem.
then the force acting at the i-th string has the magnitude
: constant of gravity) and direction
Summing up all forces and cancelling the common term
one gets the equation (At the point of equilibrium the sum of all forces is zero !)
This is a non-linear system for the coordinates of point
which can be solved iteratively by the Weiszfeld-algorithm (see below)[2] The connection between equation (1) and equation (2) is: Hence Function
a local extremum and the Varignon frame provides the optimal location experimentally.
For the following example the points are and the weights The coordinates of the optimal solution (red) are
and the optimal weighted sum of lengths is
The second picture shows level curves which consist of points of equal but not optimal sums.
Level curves can be used for assigning areas, where the weighted sums do not exceed a fixed level.
Geometrically they are implicit curves with equations Replacing in formula (2) vector
and solving the equation for
A suitable starting point is the center of mass with mass
: This algorithm is called Weiszfeld-algorithm.
[4] Formula (4) can be seen as the iteration formula for determining the fixed point of function with fixpoint equation (see fixed point) Remark on numerical problems: The iteration algorithm described here may have numerical problems if point
is close to one of the points