2017-03-28 2 views
1

선형 프로그래밍을 사용하여 특정 문제를 해결하고 PuLP에 익숙해 지려고합니다. 내 문제는 내 제약 조건 중 일부에만 결정 변수 중 일부가 포함되어 있으며 그들을 선택하는 효율적인 방법을 찾으려고 노력하고있다. 내 모든 의사 결정 변수에 대한제약 조건 할당에서 의사 결정 변수 사용 - PuLP

I 설정 목록을 :

여기 무슨 뜻입니다.

investments = ["1_t1", "2_t1", "1_t2", "2_t2", "1_t3", "2_t3"] 

그런 변수를 사전에 넣습니다.

invmt_vars = LpVariable.dicts("Invmts",investments,lowBound=0,cat='Continuous') 

그런 다음 목표 변수를 단순히 변수의 합계로 설정했습니다.

prob += lpSum(invmt_vars[i] for i in invmt_vars), 'Sum of all investments' 

은 그 때 나는이 예제 같은 제약이 :이 변수 적은 수의 작동

prob += 1_t1 + 2_t2 + 3_t2 <= 25 

을하지만, 나는 결국 변수의 수백을 추가하고 싶습니다. 변수 사전을 반복하여 모든 변수를 입력 할 필요없이 찾고있는 변수 만 얻을 수있는 방법이 있습니까?

다음과 같이 전체 사전을 통해 반복 것을 포함

지금까지, 정말에만 표시 한 제약 조건 지정 : 나는 단순히 목록에서 의사 결정 변수를 떠날 수 있다면

prob += lpSum([ingredient_vars[i] for i in Ingredients]) == 100, "PercentagesSum" 

그것은 예를 들어, 좋은 것 range 루프를 사용하십시오.

모든 입력에 감사드립니다.

답변