资源简介
内点法的机组组合程序,采用不可行内点启动的原对偶线性规划内点法,采用了稀疏技术
代码片段和文件信息
#include
#include
#include
//const int LENGTH=5000;
void main()
{
ifstream fin(“putin.txt“);
ofstream fout(“putout.txt“);
int n_interiorm_interiorm_iijkiter_k=0;
float (*a_matrix)[5000];
a_matrix=new float[5000][5000];
float *d_matrix;
d_matrix=new float[5000];
float *c_matrix;
c_matrix=new float[5000];
float *b_matrix;
b_matrix=new float[5000];
float *x0_matrix;
x0_matrix=new float[5000];
float *y0_matrix;
y0_matrix=new float[5000];
float *z0_matrix;
z0_matrix=new float[5000];
float *ep_node;
ep_node=new float[5000];
float *ep_node1;
ep_node1=new float[5000];
float *x_node;
x_node=new float[5000];
float *z_node;
z_node=new float[5000];
float *dx_node;
dx_node=new float[5000];
float *uu_node;
uu_node=new float[5000];
float *rd_node;
rd_node=new float[5000];
float *rp_node;
rp_node=new float[5000];
float (*ada_matrix)[5000];
ada_matrix=new float[5000][5000];
float *bda_matrix;
bda_matrix=new float[5000];
float *BB;
BB=new float[5000];
float *U;
U=new float[500000];
int *JU;
JU=new int[500000];
int *MD;
MD=new int[5000];
float *D;
D=new float[5000];
float *DJ;
DJ=new float[5000];
// float a_matrix[5000][5000]d_matrix[5000]c_matrix[5000]b_matrix[5000];
// float x0_matrix[5000]y0_matrix[5000]z0_matrix[5000];
// float ep_node[5000]ep_node1[5000]x_node[5000]z_node[5000];
// float dx_node[5000]uu_node[5000]rd_node[5000]rp_node[5000];
// float m_iada_matrix[5000][5000]bda_matrix[5000];
float primaldualu_node;
float gap=0.00;
float ruta;
ruta=0.01;///非常重要的中心参数
// int BB[5000]U[500000]JU[500000]MD[5000]D[5000]DJ[5000];
/////读入数据
fin>>n_interior>>m_interior;
for(i=1;i<=m_interior;i++)
for(j=1;j<=n_interior;j++)
fin>>a_matrix[i][j];
for(i=1;i<=n_interior;i++)
fin>>c_matrix[i];
for(i=1;i<=m_interior;i++)
fin>>b_matrix[i];
//////////////赋初值
for(i=1;i<=n_interior;i++)
{ x0_matrix[i]=1;
z0_matrix[i]=1;
}
for(i=1;i<=m_interior;i++)
y0_matrix[i]=0.0;
for(i=1;i<=n_interior;i++)
gap=gap+z0_matrix[i]*x0_matrix[i];
u_node=float(fabs(gap))/n_interior; //对数障碍因子
///step 1
aa:
for(i=1;i<=m_interior;i++) //计算A1-6
{ rp_node[i]=b_matrix[i];
for(j=1;j<=n_interior;j++)
if (a_matrix[i][j]!=0.0)
rp_node[i]=rp_node[i]-a_matrix[i][j]*x0_matrix[j];
}
for(i=1;i<=n_interior;i++) //计算A1-7
{ rd_node[i]=c_matrix[i]-z0_matrix[i];
for(j=1;j<=m_interior;j++)
if (a_matrix[j][i]!=0.0)
rd_node[i]=rd_node[i]-a_matrix[j][i]*y0_matr
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 258145 2008-09-04 15:27 interior method\Debug\interior method.exe
文件 21276 2008-09-04 15:27 interior method\Debug\interior method.obj
文件 590848 2008-09-04 15:27 interior method\Debug\interior method.pdb
文件 26095 2008-05-23 21:44 interior method\Debug\interior method.sbr
文件 61440 2008-09-04 15:27 interior method\Debug\vc60.pdb
文件 10143 2008-09-04 15:27 interior method\interior method.cpp
文件 4388 2008-03-23 20:42 interior method\interior method.dsp
文件 555 2008-03-23 20:08 interior method\interior method.dsw
文件 237648 2008-05-23 18:08 interior method\interior method.exe
文件 50176 2010-01-28 12:07 interior method\interior method.ncb
文件 20652 2008-05-23 18:08 interior method\interior method.obj
文件 69632 2010-01-28 12:07 interior method\interior method.opt
文件 574464 2008-05-23 18:08 interior method\interior method.pdb
文件 1816 2008-09-04 15:27 interior method\interior method.plg
文件 1543 2008-11-06 14:30 interior method\putin.txt
文件 2380366 2008-08-29 10:09 interior method\putin000.txt
文件 115 2010-01-28 12:04 interior method\putout.txt
文件 61440 2008-05-23 18:08 interior method\vc60.pdb
目录 0 2011-04-05 08:07 interior method\Debug
目录 0 2011-04-05 08:07 interior method
----------- --------- ---------- ----- ----
4370742 20
评论
共有 条评论