MarketVarignon frame
Company Profile

Varignon frame

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. If the influence of friction and other odds of the real world are neglected, the strings are long enough to prevent weights being jammed into their holes, and no single weight is so heavy as to pull the knot through the hole and below the table, the knot will take a position of equilibrium . It can be shown, that point is the optimal location which minimizes the weighted sum of distances(1): .

Mechanical Problem - Optimization Problem
If the holes have locations \mathbf x_1, \dots, \mathbf x_n and the masses of the weights are m_1,...,m_n then the force acting at the i-th string has the magnitude m_i\cdot g (g=9.81 \text{m/sec} : constant of gravity) and direction \tfrac{\mathbf x_i- \mathbf v}{\|\mathbf x_i-\mathbf v\|} (unitvector). Summing up all forces and cancelling the common term g one gets the equation :(2):\ \mathbf F(\mathbf v)=\sum_{i=1}^n m_i\frac{\mathbf x_i-\mathbf v}{\|\mathbf x_i-\mathbf v\|}=\mathbf 0. (At the point of equilibrium the sum of all forces is zero !) This is a non-linear system for the coordinates of point \mathbf v which can be solved iteratively by the Weiszfeld-algorithm (see below) The connection between equation (1) and equation (2) is: :(3): \ \mathbf F(\mathbf x)= \nabla D(\mathbf x) = \begin{bmatrix} \frac{\partial D}{\partial x} \\ \frac{\partial D}{\partial y} \end{bmatrix}. Hence Function D has at point \mathbf v a local extremum and the Varignon frame provides the optimal location experimentally. == Example ==
Example
For the following example the points are :\mathbf x_1=(0,0),\ \mathbf x_2=(40,0),\ \mathbf x_3=(50,40), :\mathbf x_4=(10,50),\ \mathbf x_5=(-10,30) and the weights :m_1=10,\; m_2=10,\; m_3=20,\; m_4=10,\; m_5=5. The coordinates of the optimal solution (red) are (32.5, 30.1) and the optimal weighted sum of lengths is L_\text{op} = 1679. 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 :\; D(\mathbf x)-c=0, \; c>L_\text{op}\; (see equation (1)). == Special cases n=1 and n=2 ==
Special cases n=1 and n=2
• In case of n=1 one gets \mathbf v = \mathbf x_1. • In case of n=2 and m_2>m_1 one gets \mathbf v = \mathbf x_2. • In case of n=2 and m_2=m_1 point \mathbf v can be any point of the line section \overline{X_1X_2} (see diagram). In this case the level curves (points with the same not-optimal sum) are confocal ellipses with the points \mathbf x_1,\mathbf x_2 as common foci. == Weiszfeld-algorithm and a fixpoint problem ==
Weiszfeld-algorithm and a fixpoint problem
Replacing in formula (2) vector \mathbf v in the nominator by \mathbf v_{k+1} and in the denominator by \mathbf v_k and solving the equation for \mathbf v_{k+1} one gets: :(4):\quad \mathbf v_{k+1}= \sum_{i=1}^n \frac{m_i\mathbf x_i}{\|\mathbf x_i-\mathbf v_k\|}\, \Bigg/ \sum_{i=1}^n \frac{m_i}{\|\mathbf x_i-\mathbf v_k\|} which describes an iteration. A suitable starting point is the center of mass with mass m_i in point \mathbf x_i: :\mathbf v_0= \frac{\sum_{i=1}^n m_i \mathbf x_i}{\sum_{i=1}^n m_i}. This algorithm is called Weiszfeld-algorithm. Formula (4) can be seen as the iteration formula for determining the fixed point of function :(5)\quad \mathbf G(\mathbf x)=\sum_{i=1}^n \frac{m_i\mathbf x_i}{\|\mathbf x_i-\mathbf x\|}\,\Bigg/ \sum_{i=1}^n \frac{m_i}{\|\mathbf x_i-\mathbf x\|} with fixpoint equation :\quad \mathbf x= G(\mathbf x) (see fixed point) Remark on numerical problems: The iteration algorithm described here may have numerical problems if point \mathbf v_k is close to one of the points \mathbf x_1,...\mathbf x_n. == See also ==
tickerdossier.comtickerdossier.substack.com