p15 | Dutch Housing Problem¶
See also
This problem is sourced from Ferchtandiker2025.
Note
We add implicit assumptions that all sets are non-empty, \(R_{jv}, \text{area}_j, m_{ih}, a_i, s_i, o_h \geq 0\), and that
iFreeandhCorpare valid indices in thenIandnHdimensions, respectively.
Description¶
The data given in the description below are just examples. The model that has to be developed should contain parameters for these values.
A residential tower consists of several floors. The optimization model has to consider just one of these possibilities. Each floor can have apartments with different areas.
The owner of an apartment can be “corporation”, “investor”, or “private”. There are three important sectors: “social”, “middle”, and “free”. The profit per apartment for the real estate developer is given, and depends on the area of the apartment, the sector, and the owner.
Here are the design restrictions:
Percentage of apartments in “social” sector should be at least a certain percentage of all apartments.
Percentage of apartments in “middle” sector should be at least a certain percentage of all apartments.
There should be a minimum average area requirement for “social” apartments.
There should be a minimum average area requirement for “middle” sector apartments.
There should be a minimum total area of “social” sector apartments owned by corporations.
There should be a minimum total area of “middle” sector apartments owned by corporations.
There should be a minimum total area requirement for “free” sector apartments.
The Corporation cannot buy apartments in the “free” sector.
There should be a minimum Percentage of apartments that go to “investors”.
All apartments on the same floor should be assigned to the same owner class (“corporation”, “investor”, or “private”).
The aim of the real estate developer is to develop a design (i.e., which apartments on which floor, and for each apartment: which sector and which owner) such that the profit for the real estate company is maximized and all restrictions as described above are satisfied.
Formulations¶
Formulation a (valid)¶
See also
This formulation is sourced from Ferchtandiker2025 (formulation id: efficient).
Note
This is the aggregate (efficient) formulation.
Parameters¶
Name |
Description |
Type |
Shape |
|---|---|---|---|
|
Number of sectors |
integer |
scalar |
|
Number of distinct apartment floor areas |
integer |
scalar |
|
Number of owner classes |
integer |
scalar |
|
Number of floor configurations |
integer |
scalar |
|
Total number of floors in the tower |
integer |
scalar |
|
Number of apartments with floor area j in configuration v |
integer |
|
|
Profit per apartment for sector i, floor area j, and owner h |
continuous |
|
|
Actual floor area value for area index j |
continuous |
|
|
Minimum floor area required for each sector i and owner h |
continuous |
|
|
Minimum fraction of total apartments that must belong to each sector i |
continuous |
|
|
Minimum average floor area required for apartments in each sector i |
continuous |
|
|
Minimum fraction of total apartments that must belong to each owner class h |
continuous |
|
|
Index of the free sector |
integer |
scalar |
|
Index of the corporation owner class |
integer |
scalar |
Variables¶
Name |
Description |
Type |
Shape / Indices |
|---|---|---|---|
|
Number of floors using configuration v with owner h |
integer |
|
|
Number of apartments in sector i with floor area j and owner h |
integer |
|
Assumptions¶
Description |
Formulation |
Implicit |
|---|---|---|
Number of sectors is positive. |
\(nI > 0\) |
yes |
Number of distinct apartment floor areas is positive. |
\(nJ > 0\) |
yes |
Number of owner classes is positive. |
\(nH > 0\) |
yes |
Number of floor configurations is positive. |
\(nV > 0\) |
yes |
R is non-negative. |
\(R_{jv} \geq 0 \quad \forall j \in J, v \in V\) |
yes |
Area values are non-negative. |
\(\text{area}_j \geq 0 \quad \forall j \in J\) |
yes |
Minimum area requirements are non-negative. |
\(m_{ih} \geq 0 \quad \forall i \in I, h \in H\) |
yes |
Sector fraction lower bounds are non-negative. |
\(a_i \geq 0 \quad \forall i \in I\) |
yes |
Average area lower bounds are non-negative. |
\(s_i \geq 0 \quad \forall i \in I\) |
yes |
Ownership fraction lower bounds are non-negative. |
\(o_h \geq 0 \quad \forall h \in H\) |
yes |
iFree is a valid sector index. |
\(0 \leq \text{iFree} < nI\) |
no |
hCorp is a valid owner index. |
\(0 \leq \text{hCorp} < nH\) |
no |
Constraints¶
Total number of floors equals K.
\[ \sum_{v \in V} \sum_{h \in H} x_{vh} = K \]Apartment-count consistency: for each area j and owner h, the total apartments of area j supplied by chosen configurations equals the total apartments of area j assigned to any sector.
\[ \sum_{v \in V} R_{jv}\, x_{vh} = \sum_{i \in I} y_{ijh} \quad \forall j \in J,\; h \in H \]Minimum fraction of total apartments that must be in sector i.
\[ \sum_{j \in J} \sum_{h \in H} y_{ijh} \geq a_i \sum_{l \in I} \sum_{j \in J} \sum_{h \in H} y_{ljh} \quad \forall i \in I \]Minimum average floor area for sector i.
\[ \sum_{j \in J} \sum_{h \in H} \text{area}_j \cdot y_{ijh} \geq s_i \sum_{j \in J} \sum_{h \in H} y_{ijh} \quad \forall i \in I \]Apartments with area below minimum for (sector i, owner h) must be zero.
\[ y_{ijh} = 0 \quad \forall i \in I,\; j \in J,\; h \in H \text{ with } \text{area}_j < m_{ih} \]Corporations cannot own free sector apartments.
\[ y_{\text{iFree},j,\text{hCorp}} = 0 \quad \forall j \in J \]Minimum fraction of total apartments for owner h.
\[ \sum_{i \in I} \sum_{j \in J} y_{ijh} \geq o_h \sum_{i \in I} \sum_{j \in J} \sum_{h' \in H} y_{ijh'} \quad \forall h \in H \]x is non-negative. (implicit)
\[ x_{vh} \geq 0 \quad \forall v \in V,\; h \in H \]y is non-negative. (implicit)
\[ y_{ijh} \geq 0 \quad \forall i \in I,\; j \in J,\; h \in H \]
Objective¶
Maximize total profit from apartment assignments.
Formulation b (valid)¶
See also
This formulation is sourced from Ferchtandiker2025 (variation id: inefficient).
Note
This is the disaggregate (inefficient) formulation.
Parameters¶
Name |
Description |
Type |
Shape |
|---|---|---|---|
|
Number of floors in the tower |
integer |
scalar |
|
Number of floor configurations |
integer |
scalar |
|
Number of owner classes |
integer |
scalar |
|
Number of sectors |
integer |
scalar |
|
Number of distinct apartment floor areas |
integer |
scalar |
|
Maximum number of apartments across all configurations |
integer |
scalar |
|
Number of apartments in configuration v |
integer |
|
|
Area index of apartment a in configuration v (maps (v, a) to an index in 0..nJ-1) |
integer |
|
|
Profit per apartment for sector i, area index j, and owner h |
continuous |
|
|
Actual floor area value for area index j |
continuous |
|
|
Minimum floor area required for each sector i and owner h |
continuous |
|
|
Minimum fraction of total apartments that must belong to each sector i |
continuous |
|
|
Minimum average floor area required for apartments in each sector i |
continuous |
|
|
Minimum fraction of total apartments that must belong to each owner class h |
continuous |
|
|
Index of the free sector |
integer |
scalar |
|
Index of the corporation owner class |
integer |
scalar |
Variables¶
Name |
Description |
Type |
Shape / Indices |
|---|---|---|---|
|
1 if floor k uses configuration v with owner h, 0 otherwise |
binary |
|
|
1 if apartment a in configuration v on floor k (with owner h) is assigned to sector i, 0 otherwise |
binary |
|
Assumptions¶
Description |
Formulation |
Implicit |
|---|---|---|
Number of floors is positive. |
\(nK > 0\) |
yes |
Number of floor configurations is positive. |
\(nV > 0\) |
yes |
Number of owner classes is positive. |
\(nH > 0\) |
yes |
Number of sectors is positive. |
\(nI > 0\) |
yes |
Number of distinct apartment floor areas is positive. |
\(nJ > 0\) |
yes |
Maximum number of apartments across all configurations is positive. |
\(nA > 0\) |
yes |
cap is non-negative and at most nA for each configuration. |
\(0 \leq \text{cap}_v \leq nA \quad \forall v \in V\) |
yes |
jApt values are valid area indices. |
\(0 \leq \text{jApt}_{va} < nJ \quad \forall v \in V,\; a < \text{cap}_v\) |
yes |
Area values are non-negative. |
\(\text{area}_j \geq 0 \quad \forall j \in J\) |
yes |
Minimum area requirements are non-negative. |
\(m_{ih} \geq 0 \quad \forall i \in I,\; h \in H\) |
yes |
Sector fraction lower bounds are non-negative. |
\(b_i \geq 0 \quad \forall i \in I\) |
yes |
Average area lower bounds are non-negative. |
\(s_i \geq 0 \quad \forall i \in I\) |
yes |
Ownership fraction lower bounds are non-negative. |
\(o_h \geq 0 \quad \forall h \in H\) |
yes |
iFree is a valid sector index. |
\(0 \leq \text{iFree} < nI\) |
no |
hCorp is a valid owner index. |
\(0 \leq \text{hCorp} < nH\) |
no |
Constraints¶
Each floor is assigned exactly one configuration and owner.
\[ \sum_{v \in V} \sum_{h \in H} x_{kvh} = 1 \quad \forall k \in K \]Each apartment on a chosen floor must be assigned to exactly one sector.
\[ \sum_{i \in I} y_{kvhia} = x_{kvh} \quad \forall k \in K,\; v \in V,\; h \in H,\; a \in A_v \]Minimum fraction of total apartments that must be in sector i.
\[ \sum_{k} \sum_{v} \sum_{h} \sum_{a \in A_v} y_{kvhia} \geq b_i \sum_{k} \sum_{v} \sum_{h} \sum_{i'} \sum_{a \in A_v} y_{kvhi'a} \quad \forall i \in I \]Minimum average floor area for sector i.
\[ \sum_{k,v,h,a \in A_v} \text{area}_{j_{va}} \cdot y_{kvhia} \geq s_i \sum_{k,v,h,a \in A_v} y_{kvhia} \quad \forall i \in I \]Apartments with area below minimum for (sector i, owner h) must have zero assignment.
\[ y_{kvhia} = 0 \quad \forall k,v,h,i,a \in A_v \text{ with } \text{area}_{j_{va}} < m_{ih} \]Corporations cannot own free sector apartments.
\[ y_{kv\,\text{hCorp}\,\text{iFree}\,a} = 0 \quad \forall k \in K,\; v \in V,\; a \in A_v \]Minimum ownership fraction: total apartments assigned to owner h meets o_h times all apartments.
\[ \sum_{k,v} x_{kvh} \cdot |A_v| \geq o_h \sum_{k,v,h'} x_{kvh'} \cdot |A_v| \quad \forall h \in H \]
Objective¶
Maximize total profit from apartment assignments.