필터 지우기
필터 지우기

Confronting dates in a constrain

조회 수: 1 (최근 30일)
Erika
Erika 2024년 2월 26일
댓글: Eric Sofen 2024년 2월 28일
I am implementing an optimisation problem on matlab and one of the constraints imposes an inequality of the type: date(x) * decision variable> date(y) + duration
Obviously I cannot multiply a date by a number so how could I solve the problem?
Thanks in advance for the help!

답변 (1개)

Walter Roberson
Walter Roberson 2024년 2월 26일
이동: Walter Roberson 2024년 2월 26일
Perhaps
decision_variable * (date(x) > date(y) + duration)
leading to
date(y) - date(x) + duration
multiplied by something. But the something is not necessarily the decision variable: it depends on what the intent is when the decision variable is false, whether that is intended to cause the constraint to pass or to fail.
  댓글 수: 5
Erika
Erika 2024년 2월 28일
@Eric Sofen This is the code related to the constrain I was talking about:
for n=1:Nr
for k=1:Nr
if (k ~= n)
for v=1:Vr
temp=f(n)+hours(eps(n,k)/mu);
constr_combined_time(n,k,v)=datenum(q(k))*y(n,k,v)>=datenum(temp);
end
end
end
end
the general meaning is that q(k) is the starting date of the job k multiplied by the decision variable which is zero if the job is not part of the optimal solution or it is equal to 1 if the job is executed because it is part of the optimal solution. Basically this date must be later than the finishing date of the job n to which job k is combined to (+ a certain duration).
I'm a beginner using Matlab but I tried implementing Walter's solution and It didn't work in this situation so I'm still using datenum which seems to work well in this particular case.
Eric Sofen
Eric Sofen 2024년 2월 28일
@Walter Roberson, whoops! Of course, you're right about the epoch for datenum. I went back and edited my post.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Time Series Objects에 대해 자세히 알아보기

제품


릴리스

R2023b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by