설명
UW-Madison의 Meta Voelker 및 Michael Ferris가 제공한 예 평활화 매개변수(창 너비)를 찾기 위한 모델 DEA 효율 점수 세트에 대한 밀도 함수를 추정합니다. 밀도 추정은 반영된 커널 함수를 사용합니다. 스무딩 매개변수는 로그 우도 교차 검증을 최대화하여 찾습니다. 효율성 점수에 대한 기능. 참고: B.W. Sliverman, 통계 및 밀도 추정 데이터 분석, 채프먼과 홀, 1986. 이 예는 ex4와 유사하지만 두 개의 추가 DLL이 있습니다. Fortran(ex4xf_cb.for) 및 C에서 상수 도함수의 사용을 보여줍니다. (ex4xc_cb.c). CONOPT3을 사용하면 실행 시간이 단축되어야 합니다. NLP 해결사로.
소형 모델 유형 :무료 슬롯 게임
카테고리 : 무료 슬롯 게임 테스트 라이브러리
메인 파일 : ex4x.gms
$title 외부 방정식 - 예 4x(EX4X,SEQ=568)
$onText
UW-Madison의 Meta Voelker와 Michael Ferris가 제공한 예시
평활화 매개변수(창 너비)를 찾기 위한 모델
DEA 효율 점수 세트에 대한 밀도 함수를 추정합니다.
밀도 추정은 반영된 커널 함수를 사용합니다. 스무딩
매개변수는 로그 우도 교차 검증을 최대화하여 찾습니다.
효율성 점수에 대한 기능.
참고: B.W. Sliverman, 통계 및 밀도 추정
데이터 분석, 채프먼과 홀, 1986.
이 예는 ex4와 유사하지만 두 개의 추가 DLL이 있습니다.
Fortran(ex4xf_cb.for) 및 C에서 상수 도함수의 사용을 보여줍니다.
(ex4xc_cb.c). CONOPT3을 사용하면 실행 시간이 단축되어야 합니다.
NLP 솔버로.
$offText
옵션 limrow = 0, limcol = 0;
* 원래 DMU 세트 이름
ALLI /1*950/을 설정합니다;
세트I(ALLI);
별칭(I,II);
* 초기 샘플 최적화의 객관적인 값을 포함합니다.
매개변수 objval(alli);
$gdxIn 데아솔루
$load 객체
* 설정된 경우 명령줄 옵션 "--nDMU=N"을 사용하고, 그렇지 않으면 모두 사용합니다.
* 표준 무료 슬롯 게임 모델인 ex4는 모든 데이터를 처리할 수 없다는 점에 유의하세요.
* --noGAMS=1을 정의하여 이 모델을 건너뛸 수 있습니다.
* 무료 슬롯 게임 솔루션은 무료 슬롯 게임의 경우 GDX 파일에서도 읽혀집니다.
* 실행을 건너뜁니다.
$설정되지 않은 경우 nDMU $set nDMU 999999
스칼라 n / %nDMU% /;
n = 최소(n, 카드(ALLI));
I(ALLI) = (ord(ALLI) le n);
양수 변수 h '평활 매개변수';
변수 cv '로그 우도 함수 값';
h.lo = 0.00001;
스칼라 hinit / 10.01 /;
스칼라 퍼지 /1e-8/;
방정식 eqn;
방정식 eqnX;
eqn..cv =e= 합계 i,
로그(퍼지 + 합계 ii$[동일하지 않음(ii,i)],
exp(-sqr[(objval(i)-objval(ii))/h]/2) +
exp(-sqr[(objval(i)-2+objval(ii))/h]/2)
)
- n*log(h);
eqnX.. 1*h + 2*cv =X= 1;
$ 미리 설정
$ifI %system.filesys%==unix $set pre 'lib'
$ 세트 '64'
$set N ex4x
$set c_cbN %pre%%N%c_cb%suf%
$set f_cbN %pre%%N%f_cb%suf%
모델 %N% '무료 슬롯 게임 구현' / eqn /;
model %c_cbN% '콜백이 포함된 C의 외부 방정식' / eqnX /;
model %f_cbN% '콜백이 포함된 F77의 외부 방정식' / eqnX /;
매개변수 보고서(*,*) '솔루션 요약';
$로드 보고서
옵션 보고서:5;
스칼라 totdist /0/;
파일 출력 / 'ex4x.put' /;
n:0:0을 출력 /;
퍼지 넣기:24:15 /;
루프 나,
put objval(i):23:13 /;
;
닫다;
$onEchoV > runme.gms
h.l = 히닛;
h.m = 0;
cv.l = 0;
cv.m = 0;
%1.작업공간=1000;
nlp를 사용하여 cv를 최대화하는 %1을(를) 해결하세요.
abort$(%1.solvestat <> 1) '%1 모델 실행에 문제가 있습니다';
실행 오류 = 0;
보고서('h', '%1') = h.l;
보고서('cv','%1') = cv.l;
실행 오류 = 0;
totdist = totdist + abs(h.l - 보고서('h', 'ex4'));
totdist = totdist + abs(cv.l - 보고서('cv','ex4'));
$offEcho
$ 확장 '.dll' 설정
$ifI %system.filesys%==unix $set ext '.so'
$ifI %system.platform%==dex $set ext '.dylib'
$ifI %system.platform%==dax $set ext '.dylib'
$ 세트 eq
$ifI %system.filesys%==unix $set eq "'"
$if set runall $set runC_cb '1' set runF_cb '1'
$ifThen nocomp를 설정하지 않음
$ ifI set runC_cb $call 무료 슬롯 게임 complink lo=%무료 슬롯 게임lo% --lang=c --files=ex4xc_cb.c --libname=%c_cbN%%ext%
$ 오류 수준 1인 경우 $abort C 라이브러리 컴파일 오류
$ ifI set runF_cb $call 무료 슬롯 게임 complink lo=%무료 슬롯 게임lo% --lang=fortran90 --files=%eq%"gehelper.f90 msg2_f.f90 ex4xf_cb.f90"%eq% --libname=%f_cbN%%ext%
$ 오류 수준 1인 경우 $abort Fortran90 라이브러리 컴파일 오류
$endIf
$ batInclude runme %N%
$if set runC_cb $batInclude runme %c_cbN%
$if set runF_cb $batInclude runme %f_cbN%
if ((totdist < 1.0E-6),
"@@@@ #테스트 통과"를 표시하고,report;
그렇지 않으면
abort totdist, "@@@@ #테스트가 통과되지 않았습니다. 자세한 내용은 ex4.lst를 검사하세요.",report;
);