구매 주문을 최적화하기위한 모델을 만들고 있습니다.
주문 수량은 500보다 크거나 0과 같아야합니다.
Solver에서 이러한 제약 조건을 어떻게 정의합니까?
이진 제약 조건을 시도하고 여러 가지 수식을 시도했지만 아무것도 작동하지 않는 것 같습니다.
기본적으로 OR
Solver 로 표현할 수 있어야하는데 어떻게해야합니까?
편집 : 다음 링크에서 내가 사용중인 Excel 파일을 볼 수 있습니다 : 여기를 클릭하십시오
구매 주문을 최적화하기위한 모델을 만들고 있습니다.
주문 수량은 500보다 크거나 0과 같아야합니다.
Solver에서 이러한 제약 조건을 어떻게 정의합니까?
이진 제약 조건을 시도하고 여러 가지 수식을 시도했지만 아무것도 작동하지 않는 것 같습니다.
기본적으로 OR
Solver 로 표현할 수 있어야하는데 어떻게해야합니까?
편집 : 다음 링크에서 내가 사용중인 Excel 파일을 볼 수 있습니다 : 여기를 클릭하십시오
답변:
따라서 0이 허용되고 1이 허용되지 않고 499가 허용되지 않으며 501이 허용됩니까? 연속되지 않은 영역처럼 보입니다. 순수한 최적화 문제가 아니라 일종의 조합 문제이기도합니다. 솔버가 이것을 처리 할 수 없습니다.
두 가지 사용 사례를 별도로 분석해야합니다.
IF 공식을 사용하여이 두 경우를 비교합니다.
편집하다:
Karl이 제안한대로 "이진"및 "정수"제약 조건을 사용하려고했지만 작동하지 않았습니다.
모든 경우에 결과는 종종 틀 렸으며 초기 조건에 의존했습니다. 분명히 솔버는 그런 것들을 좋아하지 않습니다.
그런 다음 위의 제안을 6 가지 구매 가치 모두에 적용하고 예를 들어 모든 달의 비용 합계를 최적화하여 독립적으로 최적화하는 방법에 대해 생각했습니다. 그러나 그것들은 독립적이지 않다는 것이 밝혀졌습니다. 개시 재고는 전월에 따라 다르며, 한 달 동안 최적의 구매는 전월에 구매했는지에 따라 다릅니다. 따라서 매월 간단한 IF를 추가 할 수 없습니다.
내가 할 수있는 최선은 다음과 같습니다.
이진 변수 0-1과 연속 변수> = 500을 추가하고 IF를 사용하여 매월 구매를 계산했습니다. 그러나 Solver를 사용하여 연속 변수 만 최적화했습니다. 이진 변수는 매개 변수입니다. 즉, 구매할 월을 선택한 다음 해 찾기를 사용하여 구매 금액을 계산 한 다음 총 비용을 기록합니다.
구매와 비구매의 모든 조합에 대해이 과정을 반복해야합니다. 이 조합의 수는 2 6 = 64입니다. 그러나 실제로 1 월에 아무것도 구매하지 않으면 마이너스 마감 재고가 생길 수 있습니다. 따라서 32 개의 유효한 조합 만 있습니다. 조합 인덱스에서 이진 값을 계산하는 공식을 추가하고 인덱스를 32 회 반복하고, 매번 솔버를 시작하고 각 조합에 대해 "값만"결과를 복사했습니다.
결과적으로 최소 비용은 4 625,00 €이며이 값에 도달하기위한 두 가지 조합이 있습니다.
다음은 Solver 스크린 샷과 함께 Google 문서에 업로드 된 파일입니다.
수작업으로 여러 번 솔버를 시작하는 것은 지루한 일입니다. 매크로를 사용하여 자동화 할 수 있다고 생각합니다.
목적 함수의 변수 값이 이진수라는 제약 조건을 추가하여 이진 변수를 만듭니다. 목적 함수에서이 변수의 계수는 0이어야합니다. 그런 다음 평소처럼 다음과 같은 제약 조건을 추가합니다.
-500B + X> = 0 (500 미만은 아님)
-MB + X <= 0 (B가 0 일 때 이전 구속 조건 0과 결합 됨)
B = 이항 변수 1
M = 매우 큰 양수 (X보다 클 수 있음)
X = 연속 변수
[편집하다]
다음과 같이하고 싶다는 것을 이해합니다 (시트 파일도 약간 변경했지만 여기서 작업 한 Excel 파일을 공유 할 수 없습니다).