Hi,
I am currently working on my master thesis about Dutch auctions.
So far I have summarized my main paper and implemented this model for a very example.
My problem is when I want to solve the problem I get the following error message:
ampl: model test.mod;
ampl: solve;
MINOS 5.51: Error evaluating objective z: can't compute 1/0.
MINOS 5.51: solution aborted.
1 iterations
Nonlin evals: obj = 6, grad = 6.
Error executing "solve" command:
Error differentiating z: division by 0
ampl:
Here is my model:
reset;
option randseed 3;
param M:= 20; # iterations
param n:= 1; # bidders
param X{i in 1..n}:= Uniform(700,1000); # valuation of bidder i
param Y:= max{i in 1..n} X[i]; # maximum valuations of the bidders
param a:= 800; # c_min = c_M+1
param b:= 1000; # c_0
param T:= 0; #non-negative time discounting increment
var c{k in 0..M+1} <= Y; # at least one user will make a bid and end the auction
maximize z: 1/(c[0]-c[M+1]) * sum{k in 1..M}(c[k] - k*T)*(c[k-1] - c[k]);
subject to g1{i in 1..M}: c[i] - c[i-1] <= 0;
subject to g2: c[M+1] - c[M] <= 0;
# Constraint from the Example that c_0 <= b and a <= c_min
subject to g3: c[0] - b <= 0;
subject to g4: a - c[M+1] <= 0;
# initial values
let c[0]:= 1000;
let c[21]:= 800;
If I change my objective function to:
maximize z: 1/(b-a) * sum{k in 1..M}(c[k] - k*T)*(c[k-1] - c[k]);
which should be equivalent to
maximize z: 1/(c[0]-c[M+1]) * sum{k in 1..M}(c[k] - k*T)*(c[k-1] - c[k]);
I get a result but basically both should work as c[0] is bigger than c[M+1] and they are starting points.
Enclosed is also the summary of the main paper. Maybe if someone has the time to look over it and see if I made a mistake in the implementation.
Thanks in advance.