# Difference: SurfboardProduction (28 vs. 29)

Line: 1 to 1

 META TOPICPARENT name="SubmitCaseStudy"
<-- Ready to Review -->

<--
This template controls both the look and functionality of case study topics.
You should not need to alter the layout, only edit the data using the form above.

Set the view and edit templates:
Comment out the next line to use the TWiki default view
Set VIEW_TEMPLATE = CaseStudyView

Comment out the next line to use the TWiki default edit
Set EDIT_TEMPLATE = CaseStudyEdit

-->

<--
This topic can only be changed by:
Set ALLOWTOPICCHANGE = TWikiAdminGroup, MaintenanceGroup, ContributorGroup

-->

# Case Study: The Surfboard Production Problem

## Problem Description

A surfboard manufacturer is planning his monthly surfboard production of Malibu and Super Thruster boards. He has limitations on his supply of fibreglass resin, having only 72 kilos left in stock. To construct a Malibu board requires 3 kilos of resin, and to build a Super Thruster one needs 4 kilos.

He has consulted a market research firm about the effect of the price he charges on the demand for the surfboards. They have provided him with the following information. If the price of a Malibu board is and the price of a Super Thruster board is , then the demands for the two types of boards ( and respectively) are given by:

The manufacturer would like to know how much he should charge for his boards and which boards to make in order to maximize his return (the money he makes) from board sales.

## Problem Formulation

To formulate this problem we will use the 4 steps for formulating a mathematical programme.

1. Identify the Decision Variables

The manufacturer has two decisions to make:
1. the price to charge for the surfboards;
2. how many surfboards to make.

Define the set of types of surfboards to make and then define the decision variables:

2. Formulate the Objective Function

The manufacturer wants to maximise his return from selling the surfboards. He does not want to have any left over as that is a waste of resin, so he will not make enough boards to satisfy demand. Thus, he assumes he will sell all the boards he makes. His return will be the number of boards of each type he makes multiplied by the price he chooses for that type of board:

3. Formulate the Constraints

The manufacturer only has 72 kilograms of resin to make his boards. Define a set of raw materials and as the upper limit of each raw material available (for this example and . Also, define as the amount of raw material required (in kg) to make a surfboard of type . The manufacturing constraints are:
For this example
for resin.

Furthermore, he does not believe he will sell more than the estimated demand, i.e., , where is defined by the market research equations. Thus, he won't make more than those estimates.

Finally, he cannot sell a negative number of boards, i.e., and he can only sell an integer number of boards, i.e., .

The complete formulation is:

where and are the coefficient and exponent of the demand expression for surfboard respectively.

## Computational Model

To build our mathematical programme in AMPL we first define the sets for surfboards and raw materials in surfboard.mod:

set SURFBOARDS;
set MATERIALS;


Next, we add the parameters for surfboards to surfboard.mod:

param Coefficient {SURFBOARDS};
param Exponent {SURFBOARDS};


As well as the parameters for raw materials:

param Supply {MATERIALS};

and for the surfboard "recipe"
param Recipe {MATERIALS, SURFBOARDS};


Our final step, before implementing our formulation in surfboard.mod is to define the decision variables:

var Price {SURFBOARDS};
var Production {SURFBOARDS} >= 0, integer;


Now the formulation is straightforward:

maximize TotalProfit:
sum {s in SURFBOARDS} Price[s] * Production[s];

subject to MaterialSupply {m in MATERIALS} :
sum {s in SURFBOARDS} Recipe[m, s] * Production[s] <= Supply[m];

subject to SurfboardDemand {s in SURFBOARDS} :
Production[s] <= Coefficient[s] * (Price[s] ^ Exponent[s]);


Note Both the objective and the SurfboardDemand are nonlinear expressions.

The formulation data is specified in surfboard.dat. The sets are straightforward (note the use of ' to define the whitespace in Super Thruster):

set SURFBOARDS := Malibu 'Super Thruster' ;
set MATERIALS  := Resin ;

and by defining multiple parameters at once we can define the demand equation parameters at the same time:
param:           Coefficient Exponent :=
Malibu                12000     -1.5
'Super Thruster'       12000     -1.8 ;


Using a list to define the Supply parameter and a table to define the Recipe parameter completes surfboard.dat:

param Supply :=
Resin     72 ;

param Recipe :
Malibu 'Super Thruster' :=
Resin      3               4 ;


Since our mathematical programme is a nonlinear programme we cannot use CPLEX to solve our problem. In (the Student Edition) of AMPL we can use MINOS for nonlinear programming. The script file for solving this problem would typically be similar to:

reset;

model surfboard.mod;
data surfboard.dat;

option solver minos;
solve;

display Price, Production;


However, if you run this script file you will observe the following error:

This error occurs because the initial values for Price (and Production) are set to 0. Both demand estimation functions have negative exponents, so are undefined for a value of 0, i.e.,

both of which are undefined.

We can set the initial values of the Price variables to be non-zero:

let Price['Malibu'] := 1;
let Price['Super Thruster'] := 1;

and resolve:

Note that MINOS does not actually solve for integer variables:

MINOS 5.5: ignoring integrality of 2 variables

but both the Production variables both have integer values.

MINOS also terminated before determining optimality

MINOS 5.5: too many major iterations.


By default, the number of major iterations allowed by MINOS is 50. If you increase the number of major iterations by changing the MINOS options:

option minos_options 'major_iterations=100';

and resolve you will notice that the price of the Super Thruster board is slowly increasing, as is the total return. By increasing the limit on the major iterations to 1500 we get the optimal solution:

## Results

Our computational model shows that the optimal solution is to produce 24 Super Thruster boards and sell them for $31.5811 each. Note that this solution yields integer production values, but the optimal prices ($31.958 for the Super Thruster boards and $1.01 for the Malibu boards) seem low. We may have encountered a local optimum. If the manufacturer only makes Malibu boards he has enough resin to make 18 boards. To get demand for 18 boards his price If the manufacturer only makes Super Thruster boards he has enough resin to make 24 boards. To get demand for 24 boards his price Let's try these prices as initial values in surfboard.run: This gives us a different optimal solution with a much higher return$1665.27. However, this solution does not give us integer production. Unfortunately, MINOS does not solve for integer variables. However, MINLP on the NEOS server will solve nonlinear programmes with integer variables. Furthermore, MINLP (on NEOS) accepts AMPL input. We can use surfboard.mod and surfboard.dat as the model and data files and revise our script file

let Price['Malibu'] := 101.27;
let Price['Super Thruster'] := 56.96;

solve;

display Price, Production;

to solve using MINLP (on the NEOS Server) and find an optimal integer solution.

You are using the solver minlp.
Executing AMPL.
processing data.
processing commands.

4 variables, all nonlinear
3 constraints; 6 nonzeros
2 nonlinear constraints
1 linear constraint
1 nonlinear objective; 4 nonzeros.

MINLP-B&B (20020703): m(before SOS) = 3
m(a f t e r SOS) = 3
Optimal solution found
3 subproblems, objective = 1665.141545
Evals: obj = 107, constr = 107, grad = 46, Hes = 45
:                   Price   Production    :=
Malibu             100           12
'Super Thruster'    58.1427       8
;


The manufacturer will most likely want a price that is to the nearest cent. It is dangerous to round mathematical programme solutions as even a small change in the variable value may result in a large change in the objective function or may even cause the solution to become infeasible. Since the Price variables cause our mathematical programme to be nonlinear, we will fix these variables and use CPLEX to solve for the Production variables:

reset;

model surfboard.mod;
data surfboard.dat;

option solver cplex;

let Price['Malibu'] := 100;
let Price['Super Thruster'] := 58.14;

fix Price;

solve;

display Price, Production;

let Price['Malibu'] := 100;
let Price['Super Thruster'] := 58.15;

fix Price;

solve;

display Price, Production;


Note that we rounded both up and down to check the "local neighbourhood" of the optimal point (see some discussion about solution accuracy).

## Conclusions

The Surfboard Production problem is a relatively simple problem to formulate, but its solution requires careful thought and analysis. The management summary surfboard.doc contains some information about the initial values used (so future consultants/researchers can follow the work) and details about the NEOS Optimization Server.

<--
Examining the Objective Function

The nonlinearity in this problem is introduced by the price variables. If these variables are fixed we can use CPLEX to find the optimal production levels. By looping over possible pairs of values for the prices and solving for the production levels we can build up a picture of the objective function.
param Objective {1..150, 1..150};

fix Price;

for {p in 1..150 by 1, q in 1..150 by 1} {
let Price['Malibu'] := p;
let Price['Super Thruster'] := q;

option solver cplex;
solve;

let Objective[p, q] := TotalProfit;
}

Using this picture we can try to discern if the optimal solution we found using MINLP (shown below) is the global optimum.
:                   Price   Production    :=
Malibu             100           12
'Super Thruster'    58.1427       8

Hint This for loop may take a long time to finish. Also, you may want to print the TotalProfit parameter to a file using AMPL.

-->

<--

Try different initial values for both Price and Production. Do you believe that the MINLP solution is the global optimum?

What to hand in  Hand in a summary of your different experiments along with an answer to the global optimality question. Be sure to justify your answer.

Experts Only Use AMPL and CPLEX to create a picture of the objective function. Does the solution we found using MINLP look like the global optimum?

-->

 META FORM FORM FIELD Title name="OpsRes.CaseStudyForm" Title The Surfboard Production Problem DateSubmitted 8 Feb 2008 CaseStudyType TeachingCaseStudy OperationsResearchTopics NonlinearProgramming ApplicationAreas Sports Equipment Manufacturing
|*FORM FIELD ProblemDescription*|ProblemDescription|A surfboard manufacturer is planning his monthly surfboard production of Malibu and Super Thruster boards. He has limitations on his supply of fibreglass resin, having only 72 kilos left in stock. To construct a Malibu board requires 3 kilos of resin, and to build a Super Thruster one needs 4 kilos.

He has consulted a market research firm about the effect of the price he charges on the demand for the surfboards. They have provided him with the following information. If the price of a Malibu board is and the price of a Super Thruster board is , then the demands for the two types of boards ( and respectively) are given by:

The manufacturer would like to know how much he should charge for his boards and which boards to make in order to maximize his return (the money he makes) from board sales. | |*FORM FIELD ProblemFormulation*|ProblemFormulation|To formulate this problem we will use the 4 steps for formulating a mathematical programme.

1. Identify the Decision Variables

The manufacturer has two decisions to make:
1. the price to charge for the surfboards;
2. how many surfboards to make.

Define the set of types of surfboards to make and then define the decision variables:

2. Formulate the Objective Function

The manufacturer wants to maximise his return from selling the surfboards. He does not want to have any left over as that is a waste of resin, so he will not make enough boards to satisfy demand. Thus, he assumes he will sell all the boards he makes. His return will be the number of boards of each type he makes multiplied by the price he chooses for that type of board:

3. Formulate the Constraints

The manufacturer only has 72 kilograms of resin to make his boards. Define a set of raw materials and as the upper limit of each raw material available (for this example and . Also, define as the amount of raw material required (in kg) to make a surfboard of type . The manufacturing constraints are:
For this example
for resin.

Furthermore, he does not believe he will sell more than the estimated demand, i.e., , where is defined by the market research equations. Thus, he won't make more than those estimates.

Finally, he cannot sell a negative number of boards, i.e., and he can only sell an integer number of boards, i.e., .

The complete formulation is:

where and are the coefficient and exponent of the demand expression for surfboard respectively. | |*FORM FIELD ComputationalModel*|ComputationalModel|To build our mathematical programme in AMPL we first define the sets for surfboards and raw materials in surfboard.mod:

set SURFBOARDS;
set MATERIALS;


Next, we add the parameters for surfboards to surfboard.mod:

param Coefficient {SURFBOARDS};
param Exponent {SURFBOARDS};


As well as the parameters for raw materials:

param Supply {MATERIALS};

and for the surfboard "recipe"
param Recipe {MATERIALS, SURFBOARDS};


Our final step, before implementing our formulation in surfboard.mod is to define the decision variables:

var Price {SURFBOARDS};
var Production {SURFBOARDS} >= 0, integer;


Now the formulation is straightforward:

maximize TotalProfit:
sum {s in SURFBOARDS} Price[s] * Production[s];

subject to MaterialSupply {m in MATERIALS} :
sum {s in SURFBOARDS} Recipe[m, s] * Production[s] <= Supply[m];

subject to SurfboardDemand {s in SURFBOARDS} :
Production[s] <= Coefficient[s] * (Price[s] ^ Exponent[s]);


Note Both the objective and the SurfboardDemand are nonlinear expressions.

The formulation data is specified in surfboard.dat. The sets are straightforward (note the use of ' to define the whitespace in Super Thruster):

set SURFBOARDS := Malibu 'Super Thruster' ;
set MATERIALS  := Resin ;

and by defining multiple parameters at once we can define the demand equation parameters at the same time:
param:           Coefficient Exponent :=
Malibu                12000     -1.5
'Super Thruster'       12000     -1.8 ;


Using a list to define the Supply parameter and a table to define the Recipe parameter completes surfboard.dat:

param Supply :=
Resin     72 ;

param Recipe :
Malibu 'Super Thruster' :=
Resin      3               4 ;


Since our mathematical programme is a nonlinear programme we cannot use CPLEX to solve our problem. In (the Student Edition) of AMPL we can use MINOS for nonlinear programming. The script file for solving this problem would typically be similar to:

reset;

model surfboard.mod;
data surfboard.dat;

option solver minos;
solve;

display Price, Production;


However, if you run this script file you will observe the following error:

This error occurs because the initial values for Price (and Production) are set to 0. Both demand estimation functions have negative exponents, so are undefined for a value of 0, i.e.,

both of which are undefined.

We can set the initial values of the Price variables to be non-zero:

let Price['Malibu'] := 1;
let Price['Super Thruster'] := 1;

and resolve:

Note that MINOS does not actually solve for integer variables:

MINOS 5.5: ignoring integrality of 2 variables

but both the Production variables both have integer values.

MINOS also terminated before determining optimality

MINOS 5.5: too many major iterations.


By default, the number of major iterations allowed by MINOS is 50. If you increase the number of major iterations by changing the MINOS options:

option minos_options 'major_iterations=100';

and resolve you will notice that the price of the Super Thruster board is slowly increasing, as is the total return. By increasing the limit on the major iterations to 1500 we get the optimal solution:

| |*FORM FIELD Results*|Results|Our computational model shows that the optimal solution is to produce 24 Super Thruster boards and sell them for $31.5811 each. Note that this solution yields integer production values, but the optimal prices ($31.958 for the Super Thruster boards and $1.01 for the Malibu boards) seem low. We may have encountered a local optimum. If the manufacturer only makes Malibu boards he has enough resin to make 18 boards. To get demand for 18 boards his price If the manufacturer only makes Super Thruster boards he has enough resin to make 24 boards. To get demand for 24 boards his price Let's try these prices as initial values in surfboard.run: This gives us a different optimal solution with a much higher return$1665.27. However, this solution does not give us integer production. Unfortunately, MINOS does not solve for integer variables. However, MINLP on the NEOS server will solve nonlinear programmes with integer variables. Furthermore, MINLP (on NEOS) accepts AMPL input. We can use surfboard.mod and surfboard.dat as the model and data files and revise our script file

let Price['Malibu'] := 101.27;
let Price['Super Thruster'] := 56.96;

solve;

display Price, Production;

to solve using MINLP (on the NEOS Server) and find an optimal integer solution.

You are using the solver minlp.
Executing AMPL.
processing data.
processing commands.

4 variables, all nonlinear
3 constraints; 6 nonzeros
2 nonlinear constraints
1 linear constraint
1 nonlinear objective; 4 nonzeros.

MINLP-B&B (20020703): m(before SOS) = 3
m(a f t e r SOS) = 3
Optimal solution found
3 subproblems, objective = 1665.141545
Evals: obj = 107, constr = 107, grad = 46, Hes = 45
:                   Price   Production    :=
Malibu             100           12
'Super Thruster'    58.1427       8
;


The manufacturer will most likely want a price that is to the nearest cent. It is dangerous to round mathematical programme solutions as even a small change in the variable value may result in a large change in the objective function or may even cause the solution to become infeasible. Since the Price variables cause our mathematical programme to be nonlinear, we will fix these variables and use CPLEX to solve for the Production variables:

reset;

model surfboard.mod;
data surfboard.dat;

option solver cplex;

let Price['Malibu'] := 100;
let Price['Super Thruster'] := 58.14;

fix Price;

solve;

display Price, Production;

let Price['Malibu'] := 100;
let Price['Super Thruster'] := 58.15;

fix Price;

solve;

display Price, Production;


Note that we rounded both up and down to check the "local neighbourhood" of the optimal point (see some discussion about solution accuracy).

| |*FORM FIELD Conclusions*|Conclusions|The Surfboard Production problem is a relatively simple problem to formulate, but its solution requires careful thought and analysis. The management summary surfboard.doc contains some information about the initial values used (so future consultants/researchers can follow the work) and details about the NEOS Optimization Server. | |*FORM FIELD ExtraForExperts*|ExtraForExperts|------+++ Examining the Objective Function

The nonlinearity in this problem is introduced by the price variables. If these variables are fixed we can use CPLEX to find the optimal production levels. By looping over possible pairs of values for the prices and solving for the production levels we can build up a picture of the objective function.

param Objective {1..150, 1..150};

fix Price;

for {p in 1..150 by 1, q in 1..150 by 1} {
let Price['Malibu'] := p;
let Price['Super Thruster'] := q;

option solver cplex;
solve;

let Objective[p, q] := TotalProfit;
}


Using this picture we can try to discern if the optimal solution we found using MINLP (shown below) is the global optimum.

:                   Price   Production    :=
Malibu             100           12
'Super Thruster'    58.1427       8


Hint This for loop may take a long time to finish. Also, you may want to print the TotalProfit parameter to a file using AMPL. | |*FORM FIELD StudentTasks*|StudentTasks|

1. Try different initial values for both Price and Production. Do you believe that the MINLP solution is the global optimum?

What to hand in Hand in a summary of your different experiments along with an answer to the global optimality question. Be sure to justify your answer.

2. Experts Only Use AMPL and CPLEX to create a picture of the objective function. Does the solution we found using MINLP look like the global optimum?

|
 META FILEATTACHMENT attachment="cplex_opt.jpg" attr="h" comment="" date="1205835337" name="cplex_opt.jpg" path="cplex_opt.jpg" size="67728" stream="cplex_opt.jpg" tmpFilename="" user="BaseUserMapping_333" version="2" attachment="minos_error.jpg" attr="h" comment="" date="1205834494" name="minos_error.jpg" path="minos_error.jpg" size="16555" stream="minos_error.jpg" tmpFilename="" user="BaseUserMapping_333" version="3" attachment="minos_fix.jpg" attr="h" comment="" date="1205834530" name="minos_fix.jpg" path="minos_fix.jpg" size="15084" stream="minos_fix.jpg" tmpFilename="" user="BaseUserMapping_333" version="3" attachment="minos_itns.jpg" attr="h" comment="" date="1205834579" name="minos_itns.jpg" path="minos_itns.jpg" size="60068" stream="minos_itns.jpg" tmpFilename="" user="BaseUserMapping_333" version="3" attachment="minos_opt.jpg" attr="h" comment="" date="1205834623" name="minos_opt.jpg" path="minos_opt.jpg" size="22068" stream="minos_opt.jpg" tmpFilename="" user="BaseUserMapping_333" version="1"
Deleted:
<
<
 META FILEATTACHMENT attachment="latex186ec280ff6b4f4f95349e0f4f010bf8.png" attr="h" comment="" date="1203888967" name="latex186ec280ff6b4f4f95349e0f4f010bf8.png" stream="GLOB(0x9cc57ec)" tmpFilename="latex186ec280ff6b4f4f95349e0f4f010bf8.png" user="BaseUserMapping_333" version="1" attachment="latexaa67529108876befae96260b75e06f25.png" attr="h" comment="" date="1203888967" name="latexaa67529108876befae96260b75e06f25.png" stream="GLOB(0x9cc57b0)" tmpFilename="latexaa67529108876befae96260b75e06f25.png" user="BaseUserMapping_333" version="1" attachment="latexe4115c385d4b29157b50f339703b8ab7.png" attr="h" comment="" date="1203888968" name="latexe4115c385d4b29157b50f339703b8ab7.png" stream="GLOB(0x9cc5624)" tmpFilename="latexe4115c385d4b29157b50f339703b8ab7.png" user="BaseUserMapping_333" version="1" attachment="latex2033e850992b9dbfa5aab222dbf08104.png" attr="h" comment="" date="1203888968" name="latex2033e850992b9dbfa5aab222dbf08104.png" stream="GLOB(0x9be87fc)" tmpFilename="latex2033e850992b9dbfa5aab222dbf08104.png" user="BaseUserMapping_333" version="1" attachment="latexcbe47efe5231fa9e24c2c7b841468fbd.png" attr="h" comment="" date="1203888968" name="latexcbe47efe5231fa9e24c2c7b841468fbd.png" stream="GLOB(0x9be888c)" tmpFilename="latexcbe47efe5231fa9e24c2c7b841468fbd.png" user="BaseUserMapping_333" version="1" attachment="latexede2f155626413e36031da52f9d4204e.png" attr="h" comment="" date="1203888968" name="latexede2f155626413e36031da52f9d4204e.png" stream="GLOB(0x9be882c)" tmpFilename="latexede2f155626413e36031da52f9d4204e.png" user="BaseUserMapping_333" version="1" attachment="latex94e15efb7330ae959f2cc1849810a477.png" attr="h" comment="" date="1203888968" name="latex94e15efb7330ae959f2cc1849810a477.png" stream="GLOB(0x9be8658)" tmpFilename="latex94e15efb7330ae959f2cc1849810a477.png" user="BaseUserMapping_333" version="1" attachment="latex0fc7044b96cb9799597da00daf1e1822.png" attr="h" comment="" date="1203888969" name="latex0fc7044b96cb9799597da00daf1e1822.png" stream="GLOB(0x9cc578c)" tmpFilename="latex0fc7044b96cb9799597da00daf1e1822.png" user="BaseUserMapping_333" version="1" attachment="latexaa44c255e330f8772c7f0e1d5bb066bd.png" attr="h" comment="" date="1203888969" name="latexaa44c255e330f8772c7f0e1d5bb066bd.png" stream="GLOB(0x9cc59a8)" tmpFilename="latexaa44c255e330f8772c7f0e1d5bb066bd.png" user="BaseUserMapping_333" version="1" attachment="latex1c620cd33bafb47976c28ad2f20ddb07.png" attr="h" comment="" date="1205703653" name="latex1c620cd33bafb47976c28ad2f20ddb07.png" stream="GLOB(0x951b5fc)" tmpFilename="latex1c620cd33bafb47976c28ad2f20ddb07.png" user="MichaelOSullivan" version="1" attachment="latexe8c6f2395672e75bbba3047d2a919247.png" attr="h" comment="" date="1205703654" name="latexe8c6f2395672e75bbba3047d2a919247.png" stream="GLOB(0x951b488)" tmpFilename="latexe8c6f2395672e75bbba3047d2a919247.png" user="MichaelOSullivan" version="1" attachment="latex9908bc095e8ae86931edd442a2371842.png" attr="h" comment="" date="1205703654" name="latex9908bc095e8ae86931edd442a2371842.png" stream="GLOB(0x951b758)" tmpFilename="latex9908bc095e8ae86931edd442a2371842.png" user="MichaelOSullivan" version="1" attachment="latexf56fe5ae7f7ca8e596867c860e3aee64.png" attr="h" comment="" date="1205703923" name="latexf56fe5ae7f7ca8e596867c860e3aee64.png" stream="GLOB(0xa0e9308)" tmpFilename="latexf56fe5ae7f7ca8e596867c860e3aee64.png" user="MichaelOSullivan" version="1" attachment="latex5a2349ce2303f9a762512138a5cea8bb.png" attr="h" comment="" date="1205703923" name="latex5a2349ce2303f9a762512138a5cea8bb.png" stream="GLOB(0x98bd6a4)" tmpFilename="latex5a2349ce2303f9a762512138a5cea8bb.png" user="MichaelOSullivan" version="1" attachment="latex94cfe355ab8ff3a2e5ee8023d9ed7208.png" attr="h" comment="" date="1205703923" name="latex94cfe355ab8ff3a2e5ee8023d9ed7208.png" stream="GLOB(0xa0e94dc)" tmpFilename="latex94cfe355ab8ff3a2e5ee8023d9ed7208.png" user="MichaelOSullivan" version="1" attachment="latexe1bb1d501ddf94934d2129f2c3de984a.png" attr="h" comment="" date="1205703924" name="latexe1bb1d501ddf94934d2129f2c3de984a.png" stream="GLOB(0xa0e95fc)" tmpFilename="latexe1bb1d501ddf94934d2129f2c3de984a.png" user="MichaelOSullivan" version="1" attachment="latex498ae2de1a8cb4694fdc33ebe52ff6c7.png" attr="h" comment="" date="1205703924" name="latex498ae2de1a8cb4694fdc33ebe52ff6c7.png" stream="GLOB(0xa0e9698)" tmpFilename="latex498ae2de1a8cb4694fdc33ebe52ff6c7.png" user="MichaelOSullivan" version="1" attachment="latex518b6d7c034de21379a684c448b80507.png" attr="h" comment="" date="1205703924" name="latex518b6d7c034de21379a684c448b80507.png" stream="GLOB(0xa122d64)" tmpFilename="latex518b6d7c034de21379a684c448b80507.png" user="MichaelOSullivan" version="1" attachment="latex4ccf477bdbc402b701e2c275395be70f.png" attr="h" comment="" date="1205704047" name="latex4ccf477bdbc402b701e2c275395be70f.png" stream="GLOB(0xa8918ec)" tmpFilename="latex4ccf477bdbc402b701e2c275395be70f.png" user="MichaelOSullivan" version="1" attachment="latexc02888d901c65aba44e4f51a6d1e35d2.png" attr="h" comment="" date="1205704118" name="latexc02888d901c65aba44e4f51a6d1e35d2.png" stream="GLOB(0x99c78bc)" tmpFilename="latexc02888d901c65aba44e4f51a6d1e35d2.png" user="MichaelOSullivan" version="1" attachment="latexfac052bb7f42c94d84c5e1244566aecd.png" attr="h" comment="" date="1205704203" name="latexfac052bb7f42c94d84c5e1244566aecd.png" stream="GLOB(0x9b38454)" tmpFilename="latexfac052bb7f42c94d84c5e1244566aecd.png" user="MichaelOSullivan" version="1" attachment="latex01fbe6852b0da8f42e7a44af9d351139.png" attr="h" comment="" date="1205717323" name="latex01fbe6852b0da8f42e7a44af9d351139.png" stream="GLOB(0x9a57db8)" tmpFilename="latex01fbe6852b0da8f42e7a44af9d351139.png" user="MichaelOSullivan" version="1" attachment="latexa72baf8ce73eabca15bcb21a26a2898d.png" attr="h" comment="" date="1205798361" name="latexa72baf8ce73eabca15bcb21a26a2898d.png" stream="GLOB(0x9ba07f4)" tmpFilename="latexa72baf8ce73eabca15bcb21a26a2898d.png" user="BaseUserMapping_333" version="1" attachment="latex0b3370ed5ea916525df87245cd4e7e7e.png" attr="h" comment="" date="1205798412" name="latex0b3370ed5ea916525df87245cd4e7e7e.png" stream="GLOB(0xac11a58)" tmpFilename="latex0b3370ed5ea916525df87245cd4e7e7e.png" user="BaseUserMapping_333" version="1" attachment="latex7d6a2d2006d0320e45858120c64ddbc6.png" attr="h" comment="" date="1205831309" name="latex7d6a2d2006d0320e45858120c64ddbc6.png" stream="GLOB(0xa054194)" tmpFilename="latex7d6a2d2006d0320e45858120c64ddbc6.png" user="MichaelOSullivan" version="1" attachment="latex131b2917a6fb0993cd9bc4465e6861b1.png" attr="h" comment="" date="1205832350" name="latex131b2917a6fb0993cd9bc4465e6861b1.png" stream="GLOB(0x9303908)" tmpFilename="latex131b2917a6fb0993cd9bc4465e6861b1.png" user="MichaelOSullivan" version="1" attachment="latexa7e9769bd777493f6ea63db2672ee7ee.png" attr="h" comment="" date="1205834043" name="latexa7e9769bd777493f6ea63db2672ee7ee.png" stream="GLOB(0xa557698)" tmpFilename="latexa7e9769bd777493f6ea63db2672ee7ee.png" user="BaseUserMapping_333" version="1"

 META FILEATTACHMENT attachment="surfboard.mod" attr="" comment="" date="1205873926" name="surfboard.mod" path="surfboard.mod" size="1055" stream="surfboard.mod" tmpFilename="" user="MichaelOSullivan" version="2" attachment="surfboard.dat" attr="" comment="" date="1205835868" name="surfboard.dat" path="surfboard.dat" size="317" stream="surfboard.dat" tmpFilename="" user="BaseUserMapping_333" version="1" attachment="surfboard.run" attr="" comment="" date="1205835893" name="surfboard.run" path="surfboard.run" size="370" stream="surfboard.run" tmpFilename="" user="BaseUserMapping_333" version="1" attachment="surfboard.doc" attr="" comment="" date="1255051179" name="surfboard.doc" path="surfboard.doc" size="26624" stream="surfboard.doc" tmpFilename="" user="MichaelOSullivan" version="2"
Changed:
<
<
 META FILEATTACHMENT attachment="latex8b7c61ff043d71b45c5c83b23037bfe5.png" attr="h" comment="" date="1280100436" name="latex8b7c61ff043d71b45c5c83b23037bfe5.png" stream="GLOB(0x985839c)" tmpFilename="latex8b7c61ff043d71b45c5c83b23037bfe5.png" user="MichaelOSullivan" version="1"
>
>
 META FILEATTACHMENT attachment="latex1d0b6753e47f02f3ab37ac012e2c80f5.png" attr="h" comment="" date="1542936617" name="latex1d0b6753e47f02f3ab37ac012e2c80f5.png" user="BaseUserMapping_333" version="1" attachment="latex0fc3bc08477e650a0d73043e975639da.png" attr="h" comment="" date="1542936617" name="latex0fc3bc08477e650a0d73043e975639da.png" user="BaseUserMapping_333" version="1" attachment="latexfc99906c056812cdae9084da35fe904c.png" attr="h" comment="" date="1542936617" name="latexfc99906c056812cdae9084da35fe904c.png" user="BaseUserMapping_333" version="1" attachment="latexdabef9e93f910b67dbb3eb4aa10d1b12.png" attr="h" comment="" date="1542936617" name="latexdabef9e93f910b67dbb3eb4aa10d1b12.png" user="BaseUserMapping_333" version="1" attachment="latexa5d1e57f3b503d677092b59784505e33.png" attr="h" comment="" date="1542936617" name="latexa5d1e57f3b503d677092b59784505e33.png" user="BaseUserMapping_333" version="1" attachment="latex4ea8996f76e90f290147a4f36d7b0b3b.png" attr="h" comment="" date="1542936617" name="latex4ea8996f76e90f290147a4f36d7b0b3b.png" user="BaseUserMapping_333" version="1" attachment="latex7523f395343a81ac39b485b47b240da7.png" attr="h" comment="" date="1542936617" name="latex7523f395343a81ac39b485b47b240da7.png" user="BaseUserMapping_333" version="1" attachment="latexd893244d98b4d0703073e9faf2f76dd6.png" attr="h" comment="" date="1542936617" name="latexd893244d98b4d0703073e9faf2f76dd6.png" user="BaseUserMapping_333" version="1" attachment="latex587277d5e1542a00f566d0df751bfca0.png" attr="h" comment="" date="1542936617" name="latex587277d5e1542a00f566d0df751bfca0.png" user="BaseUserMapping_333" version="1" attachment="latex45875acb944a4f73483cc66f04f19ad4.png" attr="h" comment="" date="1542936618" name="latex45875acb944a4f73483cc66f04f19ad4.png" user="BaseUserMapping_333" version="1" attachment="latexc6f488285b050ec232361147720ab0df.png" attr="h" comment="" date="1542936618" name="latexc6f488285b050ec232361147720ab0df.png" user="BaseUserMapping_333" version="1" attachment="latex3de76b25360e92712eccb0de0a93c4bd.png" attr="h" comment="" date="1542936618" name="latex3de76b25360e92712eccb0de0a93c4bd.png" user="BaseUserMapping_333" version="1" attachment="latex64336183a880d40a4d75646cc2ebfb77.png" attr="h" comment="" date="1542936618" name="latex64336183a880d40a4d75646cc2ebfb77.png" user="BaseUserMapping_333" version="1" attachment="latex3f55c62f455c6ac177bcc86cf8cd0f14.png" attr="h" comment="" date="1542936618" name="latex3f55c62f455c6ac177bcc86cf8cd0f14.png" user="BaseUserMapping_333" version="1" attachment="latexe2de09b1aa82e0c74aa201655e4f8f34.png" attr="h" comment="" date="1542936618" name="latexe2de09b1aa82e0c74aa201655e4f8f34.png" user="BaseUserMapping_333" version="1" attachment="latex7bd7c92ce6306ba5246285031ce42827.png" attr="h" comment="" date="1542936618" name="latex7bd7c92ce6306ba5246285031ce42827.png" user="BaseUserMapping_333" version="1" attachment="latexee18d0b698428b25b8f51810e5acbec1.png" attr="h" comment="" date="1542936618" name="latexee18d0b698428b25b8f51810e5acbec1.png" user="BaseUserMapping_333" version="1" attachment="latex51c15f9153d9b1219faafcb868d249f4.png" attr="h" comment="" date="1542936618" name="latex51c15f9153d9b1219faafcb868d249f4.png" user="BaseUserMapping_333" version="1" attachment="latexe4728e2214b6a383eb1fa5b52fca7d5d.png" attr="h" comment="" date="1542936618" name="latexe4728e2214b6a383eb1fa5b52fca7d5d.png" user="BaseUserMapping_333" version="1" attachment="latexc41c7da6f78bfc28be35de8f67f01606.png" attr="h" comment="" date="1542936618" name="latexc41c7da6f78bfc28be35de8f67f01606.png" user="BaseUserMapping_333" version="1" attachment="latexe0a8e3415663483446da53e2473ba565.png" attr="h" comment="" date="1542936619" name="latexe0a8e3415663483446da53e2473ba565.png" user="BaseUserMapping_333" version="1" attachment="latex52755124dd31e1938082e416f58b4015.png" attr="h" comment="" date="1542936619" name="latex52755124dd31e1938082e416f58b4015.png" user="BaseUserMapping_333" version="1" attachment="latex5b975ff22d6ce1eefec4fb72c82a76d0.png" attr="h" comment="" date="1542936619" name="latex5b975ff22d6ce1eefec4fb72c82a76d0.png" user="BaseUserMapping_333" version="1" attachment="latex6bbb0915b74d4de71db657db9ef5b0ea.png" attr="h" comment="" date="1542936619" name="latex6bbb0915b74d4de71db657db9ef5b0ea.png" user="BaseUserMapping_333" version="1" attachment="latex43cc486db9921c1cd105ee8b88c51da5.png" attr="h" comment="" date="1542936619" name="latex43cc486db9921c1cd105ee8b88c51da5.png" user="BaseUserMapping_333" version="1" attachment="latex93b6f6318b32a8ab41f816c612b0919e.png" attr="h" comment="" date="1542936619" name="latex93b6f6318b32a8ab41f816c612b0919e.png" user="BaseUserMapping_333" version="1" attachment="latex626b6c87099513290b0136bfca957c80.png" attr="h" comment="" date="1542936619" name="latex626b6c87099513290b0136bfca957c80.png" user="BaseUserMapping_333" version="1" attachment="latex0f0258b3cc4c2a63bd6fad37b1e43e89.png" attr="h" comment="" date="1542936619" name="latex0f0258b3cc4c2a63bd6fad37b1e43e89.png" user="BaseUserMapping_333" version="1"

 META TOPICMOVED by="MichaelOSullivan" date="1203886655" from="OpsRes.APriceProductionProblem" to="OpsRes.SurfboardProduction"

Copyright © 2008-2023 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback