• 扯皮的cplex-感觉时间不对


    import ilog.cplex.CpxMult;
    import ilog.cplex.CpxNumExpr;
    import ilog.cplex.IloCplex;
    import ilog.concert.*;
    
    public class MyCaculate
    {
    
    	// static
    	// {
    	// System.loadLibrary("cplex1271");
    	// }
    
    	static int length = 5000000;
    
    	public static void main(String[] args) throws IloException
    	{
    		IloCplex cplex = new IloCplex();
    		IloRange[] constraint = new IloRange[length];
    		IloIntVar[] var = new IloIntVar[length];
    		// 变量取值下界
    		int[] lb = new int[length];
    		for (int i = 0; i < length; i++)
    			lb[i] = i;
    		// 变量取值上界
    		int[] ub = new int[length];
    		for (int i = 0; i < length; i++)
    			ub[i] = Integer.MAX_VALUE;
    		// 变量名
    		String[] varname = new String[length];
    		for (int i = 0; i < length; i++)
    			varname[i] = "x" + (i + 1);
    		var = cplex.intVarArray(length, lb, ub, varname);
    
    		// x1 + x2
    		for(int i =1; i <= 10000;i++)
    		{
    			IloNumExpr r1 = cplex.sum(cplex.prod(1, var[0]), cplex.prod(1, var[i]));
    			constraint[i] = cplex.addRange(10, r1, 10*i);
    		}
    //		IloNumExpr r2 = cplex.sum(cplex.prod(1, var[0]), cplex.prod(1, var[2]));
    //		IloNumExpr r3 = cplex.sum(cplex.prod(1, var[0]), cplex.prod(1, var[3]));
    //		IloNumExpr r4 = cplex.sum(cplex.prod(1, var[1]), cplex.prod(1, var[3]));
    //		constraint[1] = cplex.addRange(20, r2, 100000, "c2");
    //		constraint[2] = cplex.addRange(300, r3, 100000, "c3");
    //		constraint[3] = cplex.addRange(4000, r4, 100000, "c4");
    
    		// 变量前系数
    		// y = -x*x
    		// 计算y的最大值
    		int[] objvals = new int[length];
    		for (int i = 0; i < length; i++)
    			objvals[i] = 1;
    		cplex.addMaximize(cplex.scalProd(var, objvals));
    		cplex.exportModel("my.lp");
    		long t1 = System.currentTimeMillis();
    		double d1 = cplex.getCplexTime();
    		if (cplex.solve())
    		{
    			/*
    			cplex.output().println("status = " + cplex.getStatus());
    			cplex.output().println("sub status = " + cplex.getCplexSubStatus());
    			for (int i = 0; i < var.length; i++)
    				cplex.output().println(
    						"var x" + (i + 1) + " = " + cplex.getValue(var[i]));
    			cplex.output().println("y = " + cplex.getObjValue());
    			cplex.output().println("best y = " + cplex.getBestObjValue());
    			*/
    			System.out.println("best y = " + (int) cplex.getBestObjValue());
    			System.out.println("y = " + (int) cplex.getObjValue());
    
    			long t2 = System.currentTimeMillis();
    			double d2 = cplex.getCplexTime();
    			System.out.println("pTime = "+(t2-t1));
    			System.out.println("cpTime = "+(d2-d1));
    		}
    		else
    		{
    
    		}
    		t1 = System.nanoTime();
    		int j = 0;
    		double k = 1;
    		for(int i =0; i < Integer.MAX_VALUE;i++)
    		{
    			j=j+1*10;
    		}	
    		long t2 = System.nanoTime();
    		System.out.println("pTime2 = "+(t2-t1));
    		System.out.println(j);
    		cplex.end();
    	}
    
    }
    

      

  • 相关阅读:
    Python Django 零基础破门而入篇(五)
    Python Django 零基础破门而入篇(四)
    Python Django 零基础破门而入篇(三)
    Python Django 零基础破门而入篇(二)
    Python Django 零基础破门而入篇(一)
    ACM/ICPC 之 计算几何入门-叉积-to left test(POJ2318-POJ2398)
    ACM/ICPC 之 机器调度-匈牙利算法解最小点覆盖集(DFS)(POJ1325)
    ACM/ICPC 之 卡卡的矩阵旅行-最小费用最大流(可做模板)(POJ3422)
    ACM/ICPC 之 伞兵-最小割转最大流(POJ3308)
    ACM/ICPC 之 最小割转网络流(POJ3469)
  • 原文地址:https://www.cnblogs.com/shuiyonglewodezzzzz/p/7230402.html
Copyright © 2020-2023  润新知