기금넷 공식사이트 - 복권 조회 - 복권 델파이 복권 소스 코드 _ 복권 app 소스 코드

복권 델파이 복권 소스 코드 _ 복권 app 소스 코드

2002 년 수학 모델링 B 문제' 수학 복권' 에서 MATLAB 이나 LINGO 로 비선형 문제를 해결하는 최적의 코드 구현. 제목은 아래와 같다.

혼합 정수 계획 문제여야 합니다. 현재 MATLAB 에는 아직 이 문제를 해결하는 관련 함수가 없다.

저는 "혼합 (비) 선형 계획 패키지" 를 개발했습니다. 다음과 같이 설명했습니다. (죄송합니다. 일부는 Word 에 표시할 수 없습니다.)

이 패키지에는 주로 두 가지 프로그램이 있는데, 하나는 혼합 선형 계획을 처리하는 것이고, 다른 하나는 비선형성을 처리하는 것이다.

1. 혼합 선형 프로그래밍

2. 혼합 비선형 프로그래밍 문제

여기서 인수는 벡터의 상한 및 하한, 각각 선형 제약 조건의 계수 행렬 및 상수 항목, 선형 제약 조건의 부등식 제약 조건의 계수 행렬 및 상수 항목, 비선형 제약 조건 중간 제약 조건 및 부등식 제약 조건입니다. 불연속 정수가 아닌 변수입니다. 범위는 이고, 정수 변수이며, 나머지는 연속 변수입니다.

Xstatus 배열을 사용하여 불연속 또는 정수 변수의 상태를 설정할 수 있습니다. 여기서 xstatus( 1,:) 는 인수에서 불연속 또는 정수 변수의 아래 첨자입니다. Xstatus(2,:) 에 있는 각 요소의 값은 1 또는 2 입니다. Xstatus 의 해당 열에 대한 인수는 1 인 경우 정수 변수이고, 2 인 경우 xstatus 의 해당 열에 대한 변수는 불연속 변수입니다. 열에서 불연속 변수 범위에 해당하는 일련 번호로, 변수가 정수인 경우 0 입니다. 그래서 다음과 같이 표현할 수 있습니다.

여기에 네 가지 예를 들어 설명하고, 나머지는 나중에 다시 이야기하자.

예제 1. 모든 변수는 정수입니다.

두 프로그램 모두에서 개별적으로 수정합니다.

Isallinteger =1;

다른 불연속 변수의 범위를 설정할 필요는 없습니다.

예 2. X2, X4, X7 은 정수이고 나머지는 연속 변수입니다.

두 프로그램 모두에서 개별적으로 수정합니다.

IsAllInteger = 0;;

다음과 같이 수정합니다.

기본 프로그램에서' checkIntDisc' 를 호출하는 형식이' checkIntDisc (..., xstatus)' 로 변경됩니다.

예 3. X2, X4, x4 는 정수이고 x3, x7, x9 는 D 1 컬렉션에서 가져온 것이고 나머지는 연속 변수입니다.

두 프로그램 모두에서 개별적으로 수정합니다.

IsAllInteger = 0;;

다음과 같이 수정합니다.

주 프로그램에서' checkIntDisc' 를 호출하는 형식은' checkintdisc (..., xstatus, d 1)' 로 변경됩니다.

예 4. X2, x4 는 정수이고, x3, x9 는 D 1 컬렉션에서 가져오고, x7 은 D2 를 취하고, 나머지는 연속 변수입니다.

두 프로그램 모두에서 개별적으로 수정합니다.

IsAllInteger = 0;;

다음과 같이 수정합니다.

주 프로그램에서' checkIntDisc' 를 호출하는 형식은' checkintdisc (..., xstatus, d 1, D2)' 로 변경됩니다.

두 프로그램을 사용하는 구체적인 단계는 다음과 같습니다.

경로 추가 "\ ..." Matlab 환경에서 파일/경로 설정 ... "을 사용합니다.

실제 문제에 따라 다음 6 단계에 따라 일련의 매개변수와 파일을 수정합니다.

1) 매개변수는 fmincom.m 함수의 요구 사항에 의해 제공됩니다

A, b, Aeq, Beq, LB, UB, X0

2) 'obj_fun.m' 은 대상 함수 소스 파일입니다.

3) 'nl_con_fun.m' 은 비선형 제약 (정수 또는 단속 수요 제외) 의 소스 파일입니다.

4) 모든 구성 요소가 정수 요구 사항인지 여부를 설정합니다.

Isallinteger =1; 모든 컴포넌트는 정수입니다.

IsAllInteger=0 모든 컴포넌트가 정수인 것은 아닙니다.

5) 불연속 변수의 범위 매개변수 d1-DM 을 수정합니다.

D1= [2.5,3,4,6,8, 10, 12,16 % 단속 수요 x( 1), x(2), x(3)

D2 = [2.5,3,4,6,8, 10, 12.2,16.6]; 단속 수요 퍼센트

필요한 경우 checkintdisc (..., xstatus, d 1) 에서 checkintdisc (..., xstatus, d/) 로 수정합니다

6) 수정된 배열

자세히: 법: spjin@whut.edu.cn.