Problem Description:
The 2x4 section of a saw mill must produce 2x4s in 8’, 10’,
12’, and 14’ lengths, all of which have a different market
price, market demand (=target inventory), and inventory-in-stock. Raw
2x4 sections come from another part of mill in batches containing various
arbitrary lengths, which you will know before the batch arrives. Your
problem is to decide how to cut each piece in the batch to maximize value
and maintain and appropriate target inventory. A realistic example situation
is:
rawMaterial = {20 ⇒ 30’, 16
⇒ 29’, 12 ⇒ 29’, 10 ⇒ 27’, 50 ⇒
22’, 60 ⇒ 20’, 72 ⇒ 18’, 41 ⇒ 16’, 97
⇒ 12’}
marketPrice = {8’ ⇒ $4.00,
10’ ⇒ $6.50, 12’ ⇒ $10.25, 14’ ⇒ $16.75}
targetInventory = {8‘ ⇒
5000, 10‘ ⇒ 1000, 12‘ ⇒ 400, 14‘ ⇒ 200}
inventoryInStock = {8‘ ⇒
3042, 10‘ ⇒ 500, 12‘ ⇒ 956, 14‘ ⇒ 0}
The solution should specify how to chop each of the raw material 2x4s.
It should be represented as a bag containing pairs of lengths (one for
each of the raw material lengths) crossed with a bag of lengths that
represent the sections to be cut to finished material (8’, 10’,
12’, or 14’), where the sum of the sections must be less than or
equal to the corresponding raw material length. Thus, a partial
solution to the above problem might be:
[ 30’ ⇒ [14’,8’,8’],
30’ ⇒ [14’,14’], 30’ ⇒
[10’,10’,10’] ]
The solutions type is:
bag (length ↔ bag
{8’,10’,12’,14’})
Give a fully-specified formal model and process
for to solve the cutting problem for an arbitrary arbitrary batch of 2x4
lumber.
Also give a fully-specified formal search instance for
the problem:
rawMaterial = {1x30’, 1x20’}
|
8' |
10' |
12' |
14' |
marketPrice |
$1 |
$2 |
$3 |
$4 |
targetInventory |
1000 |
700 |
500 |
200 |
inventoryInStock |
1500 |
700 |
100 |
100 |
Last updated
2013-08-31 00:00 |
|