我正在解决一个带有放大器(原始和双重形式)的svm问题。模型应该是正确的,它确实编译没有错误但是我收到以下错误消息:
CreateProcess(“。\ snopt.exe”)失败!错误代码2。
这些是我的模特:
原始形式
param n;
param x{i in{1..n}, j in{1..2} };
param y{i in{1..n}};
var w{i in{1..2}};
var b;
# objective function
minimize obj: 1/2 * sum{i in{1..2}}( w[i]^2 );
subject to c1 {i in {1..n}}: y[i] * ( sum{j in {1..2}} ( w[j] * x[i,j] ) + b ) >= 1;
双重形式:
reset;
param l;
param C := 10;
var lambda{1..l}>=0, <= C;
param x{i in{1..l}, j in{1..2} };
param y{i in{1..l}};
minimize obj : 1/2*sum{i in 1..l}lambda[i]*y[i]*sum{k in 1..2}x[i,k]*
sum{j in 1..l}lambda[j]*y[j]*x[j,k];
s.t. vincolo1: sum{i in 1..l}lambda[i]*y[i]=0;
和model.dat
param n:=10;
#param l:=10;
param x : 1 2 :=
1 -1 7
2 -2 5
3 2 5
4 -2 1
5 0 -1
6 -4 3
7 0 3
8 3 0
9 4 3
10 2 8;
param y :=
1 1
2 1
3 1
4 1
5 1
6 -1
7 -1
8 -1
9 -1
10 -1;
当Windows无法在您的计算机上执行CreateProcess(".\snopt.exe") failure!
时,会出现消息.\snopt.exe
。要确认此文件不可执行,请尝试Windows命令.\snopt.exe -v
(或等效的snopt.exe -v
),它只是要求SNOPT显示版本字符串。要解决此问题,请下载文件snopt.exe的新副本;在AMPL demo bundle中有一个副本可以使用你拥有的任何许可文件。