MATLAB 는 LINGO 환경 을 구축 하고 LINDO API 를 호출 하여 선형 계획 등 문 제 를 해결 합 니 다.

2408 단어 공부 하 다.
1. LINGO 환경 설치
1, 64 비트 LINDO API 다운로드 주소:http://www.lindo.com/downloads/LAPI-WINDOWS-64x86-9.0.zip
다운로드 후 기본 경 로 를 선택 하여 설치 합 니 다.
2. startup. m 파일 설정
1) MATLAB 설치 디 렉 터 리 아래 toolbox \ local (예 를 들 어 제 경 로 는 D: \ matlab \ toolbox \ \ local) 의 startupsav. m 파일 을 startup. m 로 변경 합 니 다.
2) startup. m 파일 에 load matlab. mat 라 는 말 은 '%' 로 차단 합 니 다.그리고 다음 문장 을 복사 합 니 다.
    global MY_LICENSE_FILE
    MY_LICENSE_FILE = 'C:\LINDOAPI\LICENSE\lndapi90.lic';
    path(path,'C:\LINDOAPI\BIN\WIN64')
    path(path,'C:\LINDOAPI\INCLUDE')
    path(path,'C:\LINDOAPI\MATLAB');
3) MATLAB 를 시작 하고 명령 프롬프트 아래 'mxlindo' 를 입력 하면 다음 과 같은 정보 가 화면 에 표 시 됩 니 다.
mxLINDO (R) Version 9.0.251Matlab Interface for LINDO API (R) Version 9.0.2528.303, Built Nov  8 2016 13:42:21Barrier Solver Version 7.1.0.053, Nonlinear Solver Version 3.15PPlatform Windows 64x86 (B)Copyright (c) 2001-2014 by LINDO Systems, Inc.
All rights reserved.
Usage: [z1,z2,..,zk] = mxLINDO('LSfuncName',a1,a2,...,an)
2. lindo API 를 호출 하여 선형 계획 문 제 를 해결 합 니 다.
함 수 는: [x, y, s, dj, obj, solstat] = LMsolvm (A, b, c, csense, l, u, vtype, QCrows, QCvars 1, QCvars 2, QCcoef);
입력 매개 변수: A: 제약 조건 의 모든 왼쪽 항목 (매개 변수), 각 제약 은 분점 으로 b: 제약 조건 의 모든 오른쪽 항목 (결과) c: 목표 매개 변수 csense: 제약 유형 (결 성 은 "E") 에 대응 하고, "L" 은 "> =", "G" 는 "< =", "E" 는 "=" l 과 u: 결정 변수 x 의 하계 (결 성 은 0), 상계 (결 성 은 정 무한) 를 나타 낸다.vtype: 의사 결정 변수 x 의 유형 (결 성 은 'C'), 'C' 는 연속 변수 (실수), 'I' 는 일반 정수 변 수 를 나타 내 고 'B' 는 0 - 1 변 수 를 나타 낸다. QCrows: 같은 차원 의 벡터 를 가지 고 n 단계 대칭 방진 Qc, Qi 의 구체 적 인 값 (결 성 은 0) 을 확인한다. '제약 지표' (- 1 은 Qc, i (0 에서 m - 1) 는 Qi 에 대응한다.QCvar 1: 표 시 된 Qi 의 '행' QCvar 2: 표 시 된 Qi 의 '열' QCcoef: 행렬 요 소 를 나타 내 는 구체 적 인 값 출력 매개 변수: x: 최 적 화 된 해석: 쌍 최 적 화 된 해석 (그림자 가격) s: 원래 문제 의 이완 변수 dj: 쌍 문제 의 이완 변수 obj: 최 적 화 된 목표 값 solstat: 프로그램 종료 상태.
예 를 들 어 다음 과 같은 정수 계획 을 구한다.
z=5x1+3x2+x3;
3x1+x2<=10
x1+x2+x3<=5;
2x2+x3<=8;
MATLAB 에서 LINDO 를 호출 하여 정수 계획 코드 는 다음 과 같 습 니 다.
A= [3 1 0; 1 1 1; 0 2 1];
b=[10 5 8];
c=[5 3 1]; csense = 'GGG'; vtype = 'III';
[x,y,s,dj,obj,solstat] = LMsolvem(A, b, c, csense, [], [],vtype); 
x

구 해 결 과 는:
x =     2     4     0

좋은 웹페이지 즐겨찾기