我正在用ampl(原始形式和对偶形式(解决svm问题。模型应该是正确的,确实如此它编译没有错误,但我收到以下错误消息:
创建进程(".\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;
和型号.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 无法在您的计算机上执行.snopt.exe
时,会出现消息CreateProcess(".snopt.exe") failure!
。要确认此文件不可执行,请尝试 Windows 命令 .snopt.exe -v
(或等效的 snopt.exe -v
(,它仅要求 SNOPT 显示版本字符串。要解决此问题,请下载文件 snopt.exe 的新副本;AMPL演示包中有一个副本,可以与您拥有的任何许可证文件一起使用。