## 769 Reputation

13 years, 342 days

## How can I get the date...

Maple 2017

Hello

There are 13214 days between these two dates.

with(Finance): DayCount("Jan-01-1981", "MAR-7-2017");

But how can I find the end date, given the beginning date and the days between?

This doesn't work (of course, because the date is not a number):

fsolve(DayCount("Jan-01-1981", x)=13214)

is there a direct way? in excel i would do it indirectly using Goal Seek

## Minimum cost of a TRP...

Maple 2016

Experts.

I'm trying to solve a Truck Routing Problem. I set in up in Maple and Excel, but I get a smaller minimum in the spreadsheet, than in Maple. Its like as if I havn't generated enough possible routes, even though i feel i've done an exaustive search. I realise the distance matrix violates the triangle inequality.  Any suggestions....

TRP_14x3.mw

## Select remove in partitition...

Maple 2016

Hi

How can I remove a subset containing a number from a partition?

eg S := [seq(2..5)]

P:=combinat:-setpartition(S, 2);

[[[2, 3], [4, 5]], [[2, 4], [3, 5]], [[2, 5], [3, 4]]]

I want to remove any partition involving 5

leaving

[[[2, 3]], [[2, 4]], [[3, 4]]]

i tried

remove(has,P,5)

## Convert max to ILP constraint...

Maple

Given

Tour2:=[[[1, 2, 3, 4]], [[1, 2], [1, 3, 4]], [[1, 3], [1, 2, 4]], [[1, 4], [1, 2, 3]], [[1, 2], [1, 3], [1, 4]]]:

Kitonums code

seq(max(seq(add(d[s[i]]*x[s[i],s[i+1]], i=1..nops(s)-1) , s=t))<=K, t=Tour2); produces

18*x[1, 2]+26*x[2, 3]+11*x[3, 4] <= K, max(18*x[1, 2], 26*x[1, 3]+11*x[3, 4]) <= K, max(26*x[1, 3], 18*x[1, 2]+11*x[2, 4]) <= K, max(11*x[1, 4], 18*x[1, 2]+26*x[2, 3]) <= K, max(18*x[1, 2], 26*x[1, 3], 11*x[1, 4]) <= K

correctly. The problem is I want to pass this through LPSolve and it doesn't like it. So what I need is to convert it to a constraint it will accept. I found a method on stackexchange,

http://stackoverflow.com/questions/10792139/using-min-max-within-an-integer-linear-program

i'm not sure it even works.i would be great if a procedure could could convert the max's in the above expression, or change the code in bold.

max(6*x[1, 4],4*x[1, 2]+3*x[2, 3]), where x[i,j] are binary vars.
x4 >= 6*x[1, 4];
x4 >= 4*x[1, 2]+3*x[2, 3];
Objective:= x4;

## setting up constraints...

Maple 2016

Sirs.

Probably a brain fade, but I cant seem to code what i want.

Tour2:=[[[1, 2, 3, 4]], [[1, 2], [1, 3, 4]], [[1, 3], [1, 2, 4]], [[1, 4], [1, 2, 3]], [[1, 2], [1, 3], [1, 4]]];M:=nops(Tour2):

 (1)

interface(rtablesize=M):
maxEnt:=max([seq(nops(Tour2[i]),i=1..M)]):
Tours_Distances := Matrix
( maxEnt,
M,
[ seq
( [ seq
( `if`( numelems(Tour2[i])>=j,
d[i]*x[op(Tour2[i,j])]<=K,
0
),
i=1..M
)
],
j=1..maxEnt
)
]
);

 (2)

convert( (2), 'list', 'nested' );

 (3)

But what I want is:

d[1]*x[1,2]+d[2]*x[2,3]+d[3]*x[3,4]<=K,d[1]*x[1,2]<=K,d[1]*x[1,3]+d[3]*x[3,4]<=K;      #.....etc.

 (4)