Python의 혼합 정수 비선형 프로그래밍 라이브러리에서 외부 사용자 정의 함수를 동적 제약 조건으로 추가 할 수 있습니까? 나는 boolean 변수와 Numpy 행렬 (크기 m x n)을 사용하여 요청 된 총 값의 합을 최소화하고자합니다 (예 : tot_vals = 2,3 ... n). 따라서 일부 "공간"제약 조건을 추가하려면 (부울 인덱싱을 기반으로) 함수를 생성하고이를 최적화 절차에 구현하려고합니다. CVXPY에서는 CVXPY의 형식화 된 제약 조건을 추가 할 수 없으므로 실패합니다. PULP는 LP 문제에서만 작동합니다. Pyomo, OpenOpt 또는 PySCIPopt가 될 수 있습니다. MINLP의 Python 외부 제한 기능
당신의 도움이 PySCIPOpt으로
0
A
답변
0
이 가능합니다 미리 감사드립니다. 현재의 LP 솔루션을 가능성을 검사하고 다음 노드의 실행 불가능 성을 우회하기 위해 유효한 불평등을 추가 할 수있는 사용자 지정 제약 조건 처리기를 만들어야합니다.
이 절차의 한 예는 PySCIPOP에서 TSP implementation입니다. 이것은 또한 PySCIPOP에 관한 좀 더 자세한 내용으로 this tutorial article에 설명되어 있습니다.
매트 귀하의 즉각적인 반응과 추가 정보를 주셔서 감사합니다. 단 하나의 선택과 기회가 그래프로 작업하고있는 것을 보았습니다. PySCIPopt를 설치하려고하는데 설치가 약간 까다 롭고 하나의 'pip install'보다 복잡합니다. Windows 10의 Python 3.6에서 작업하고 있습니다. –
실제로 복잡하지 않습니다. 제공된 Windows Installer를 사용하여 SCIP Opt Suite를 설치하고 PATH 및 SCIPOPTDIR 환경 변수를 설정 한 다음'pip install pyscipopt'을 실행할 수 있습니다. 해결할 수없는 문제가있는 경우 PySCIPOP GitHub 페이지에서 문제를 열어보십시오. – mattmilten