亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? standardsimpmethod.java

?? [數(shù)學問題]用分支定界發(fā)解線性混合整數(shù)規(guī)劃問題
?? JAVA
字號:
package com.sea0108.simpmethod;
import java.util.ArrayList;

/**
 * standard simple method for maximization of linear programming
 */
public class StandardSimpMethod 
{
	public static final Fraction MAX = Fraction.MAX_VALUE;
	protected Fraction[] funCoefs; 
	protected Fraction[][] matA;   
	protected Fraction[]  vecB;  
	private int[] baseVar;     
	private Fraction[][] table;
	public Fraction[] ans;       
	public Fraction fval;    
	private int tableRow;
	private int tableCol;
	public int iterCount = 0;
	private String line;
	public ArrayList<String> iterProcess = new ArrayList<String>();
	
	protected StandardSimpMethod()
	{
		
	}
	
	public  StandardSimpMethod(Fraction[][] matA, Fraction[]  vecB,Fraction[] funCoefs)
	{
		init(matA,vecB,funCoefs);
		solve();
	}
	
	public StandardSimpMethod(Fraction[][] matA, Fraction[]  vecB,Fraction[] funCoefs,Fraction negFval)
	{
		init(matA,vecB,funCoefs);
		this.table[tableRow-1][tableCol-1] = negFval;
		solve();
	}
	
	protected  StandardSimpMethod(Fraction[][] table, int[] baseVar)
	{	
		this.tableRow = table.length;
		this.tableCol = table[0].length;
		this.ans = new Fraction[tableCol-1];
		this.table = table;
		this.baseVar = baseVar;
		initLine();
		solve();
	}
	
	private void init(Fraction[][] matA, Fraction[]  vecB,Fraction[] funCoefs)
	{
		this.funCoefs = funCoefs;
		this.matA = matA;
		this.vecB = vecB;
		this.tableRow = matA.length + 1;
		this.tableCol = matA[0].length + 1;
		this.ans = new Fraction[tableCol-1];				
		initTable();
		initBaseVar();
		initLine();
	}
	
	private void initTable()
	{
		table = new Fraction[tableRow][tableCol];
		for(int i=0; i<tableRow-1; i++)
			for(int j=0; j<tableCol-1; j++)
				table[i][j] = matA[i][j];
		
		for(int i=0; i<tableRow-1; i++)
			table[i][tableCol-1] = vecB[i];			
		for(int i=0; i<tableCol-1; i++)
			table[tableRow-1][i] = funCoefs[i];				
		table[tableRow-1][tableCol-1] =  new Fraction(0);
	}	

	private void initBaseVar()
	{
		baseVar = new int[tableRow-1];
		for(int i=0; i<tableRow-1; i++)
			baseVar[i] = tableCol - tableRow + i;
	}
	
	private void  initLine()
	{
		StringBuilder sb = new StringBuilder();
		for(int i =0;i<80;i++)
			sb.append("——");
		StringBuilder s = new StringBuilder();
		for(int i =0;i<tableCol;i++)
			s.append("\t    ");
		line =  sb.toString().substring(0,(int)(0.73*s.length()));
	}
	
	private void solve()
	{	
		iterProcess.add(showTable());
		boolean findAns = false; //if findAns is true then we find the best answer	
		while( !findAns )
		{	
			int inVar = -1;
			int outVar = -1;
			Fraction d = new Fraction(0);
			for(int i = 0; i<tableCol-1; i++)
				if(table[tableRow-1][i].compareTo(d)>0)
				{					
					d = table[tableRow-1][i];				
					inVar = i;			
				}				
		
			if(inVar>=0)
			{
				d = MAX;		
				for(int i =0;i<tableRow-1;i++)				
					if(table[i][inVar].b>0)
					{
						Fraction r =  Fraction.divide(table[i][tableCol-1],table[i][inVar]);					
						if(r.compareTo(d)<0)
						{				
							d = r;
							outVar = i;					 
						}
					}							
			}

			if(inVar >=0 && outVar>=0)
			{			
			    baseVar[outVar] = inVar;
				transform(table,outVar,inVar);	
				iterCount++;
				iterProcess.add(showTable());	
			}	
			else
			{			
				findAns = true;
				getResult(inVar);
			}	   
		}
	}	
	
	public static void transform(Fraction[][] table,int r,int c)
	{
		final int tableRow = table.length;
		final int tableCol = table[0].length;
		Fraction d = table[r][c];
		if(!d.equals(new Fraction(1)))
			for(int i=0; i<tableCol; i++)
				table[r][i]  = 	Fraction.divide(table[r][i], d);		
	
		for(int i=0; i<tableRow; i++)
			if(i!=r && table[i][c].b!=0)
			{
				d = table[i][c];	
				for(int j=0; j<tableCol; j++)
					table[i][j] = Fraction.minus(table[i][j], Fraction.multiply(table[r][j],d));	
			}			
	}
	
	private void getResult(int inVar)
	{	
		for(int i =0; i<tableCol-1; i++)
			ans[i] = new Fraction(0);		
		for(int i =0; i<tableRow-1; i++)
			ans[baseVar[i]] = table[i][tableCol-1];		
							
		if(inVar<0)				
			fval = table[tableRow-1][tableCol-1].contraryNumber();			
		else
		{				
			ans[inVar] = MAX;					
			fval = MAX;
		}	
	}
	
	public String showTable()
	{
		StringBuilder sb = new StringBuilder();
		sb.append("\t(求最大)迭代("  + iterCount+  "):基(");
		for(int i =0;i<tableRow-2;i++)
			sb.append((baseVar[i]+1)+ ",");
		sb.append((baseVar[tableRow-2]+1) + ")\n");			
		
		for(int i = 0;i<tableRow -1;i++)
		{	
			for(int j =0;j<tableCol-1;j++)
				sb.append("\t" + table[i][j]);		
			sb.append("\t|\t" + table[i][tableCol-1] + "\n");
		}	
		sb.append("\t" + line + "\n");
		for(int j =0;j<tableCol-1;j++)
			sb.append("\t" + table[tableRow-1][j]);
		sb.append("\t    (" + table[tableRow-1][tableCol-1].contraryNumber() + ")\n");
			
		return sb.toString();
	}		

	protected int[] getBaseVar()
	{
		return baseVar;
	}
	
	protected Fraction[][] getTable()
	{
		return table;
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人深夜视频在线观看| 欧美日韩成人综合| 欧美日韩亚洲国产综合| 日韩欧美高清dvd碟片| 亚洲美女区一区| 毛片av一区二区| www.日韩精品| 久久毛片高清国产| 亚洲成人精品一区二区| 国产乱码精品1区2区3区| 欧美视频在线一区| 亚洲色图在线看| 成人免费看片app下载| 欧美成人官网二区| 人人超碰91尤物精品国产| 91香蕉视频黄| 国产精品成人一区二区三区夜夜夜| 青青草精品视频| 欧美日本不卡视频| 亚洲一区二区三区自拍| 色综合婷婷久久| 亚洲色图视频免费播放| 欧美a一区二区| 777欧美精品| 亚洲午夜在线视频| 色婷婷精品大视频在线蜜桃视频| 久久亚洲影视婷婷| 国产综合久久久久久鬼色 | 亚洲一区中文日韩| 99久久久免费精品国产一区二区| 久久久精品综合| 国产精品一区二区男女羞羞无遮挡| 91精品国产欧美日韩| 五月婷婷激情综合网| 欧美性生活影院| 亚洲成人动漫在线免费观看| 在线这里只有精品| 亚洲一区二区三区自拍| 欧美色图在线观看| 婷婷久久综合九色综合伊人色| 欧美亚洲一区二区在线| 亚洲国产欧美在线| 欧美日韩一区二区不卡| 午夜精品久久久久久久蜜桃app| 欧美私人免费视频| 免费高清不卡av| 国产午夜精品福利| 91毛片在线观看| 亚洲一区二区三区四区五区中文| 欧美在线|欧美| 日韩va亚洲va欧美va久久| 制服丝袜av成人在线看| 久久福利视频一区二区| 国产日产欧美一区二区三区| 国产成人午夜片在线观看高清观看| 久久香蕉国产线看观看99| 国产久卡久卡久卡久卡视频精品| 26uuu精品一区二区三区四区在线| 国产精品亚洲午夜一区二区三区| 欧美国产日本视频| 欧美中文字幕一区二区三区亚洲| 日本特黄久久久高潮| 亚洲精品一区二区三区香蕉| 成人一区二区三区| 亚洲国产一区二区在线播放| 欧美一区二区高清| www..com久久爱| 首页欧美精品中文字幕| 国产无遮挡一区二区三区毛片日本| 一本色道亚洲精品aⅴ| 日韩av中文在线观看| 国产喷白浆一区二区三区| 色天天综合色天天久久| 激情综合色播五月| 亚洲精品国久久99热| 精品国产sm最大网站免费看| 一本到高清视频免费精品| 麻豆免费看一区二区三区| 中文字幕亚洲区| 日韩欧美国产wwwww| 色偷偷成人一区二区三区91| 精品写真视频在线观看| 亚洲精品乱码久久久久久| 久久综合久久综合久久综合| 欧美综合亚洲图片综合区| 国产ts人妖一区二区| 日韩国产欧美在线播放| 中文字幕精品在线不卡| 日韩欧美你懂的| 欧美午夜一区二区三区| 成人动漫av在线| 韩国欧美一区二区| 午夜久久久久久久久久一区二区| 国产精品久久99| 国产日本欧洲亚洲| 欧美电影免费观看高清完整版| 91小视频在线| 不卡区在线中文字幕| 国产精品一区不卡| 国产在线播放一区二区三区| 三级不卡在线观看| 亚洲一区在线观看视频| 亚洲三级理论片| 国产精品久久久久久久蜜臀 | 欧美色爱综合网| 97精品电影院| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 亚洲成人午夜电影| 亚洲综合免费观看高清完整版 | 日本网站在线观看一区二区三区| 一区二区三区在线看| 亚洲婷婷综合久久一本伊一区| 久久久精品一品道一区| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 91国产视频在线观看| 91丨porny丨在线| 94-欧美-setu| 波多野结衣在线aⅴ中文字幕不卡| 国内精品伊人久久久久av一坑| 日韩精品一级中文字幕精品视频免费观看 | 久久精品国产免费| 美女一区二区三区| 卡一卡二国产精品| 精品系列免费在线观看| 国产在线视视频有精品| 韩国精品主播一区二区在线观看 | 欧美国产日韩a欧美在线观看 | 粉嫩在线一区二区三区视频| 国产一区二区女| 国产成人aaa| www.视频一区| 91久久一区二区| 欧美挠脚心视频网站| 91精品国产综合久久精品app| 欧美精品1区2区3区| 日韩欧美中文字幕公布| 精品国产伦一区二区三区观看方式| 精品少妇一区二区三区在线视频| 精品福利视频一区二区三区| 久久先锋影音av鲁色资源| 国产精品亲子伦对白| 亚洲精品视频一区二区| 五月婷婷色综合| 国产一区二区0| 99re成人精品视频| 91精选在线观看| 国产欧美日韩综合| 一区二区三区不卡视频在线观看 | 亚洲伊人色欲综合网| 美女一区二区三区| 99久久免费视频.com| 欧亚一区二区三区| 久久久欧美精品sm网站| 中文字幕日韩精品一区| 奇米四色…亚洲| 不卡一区二区三区四区| 在线观看91精品国产麻豆| 久久蜜桃一区二区| 一区二区三区在线影院| 精品亚洲成a人在线观看| 色狠狠av一区二区三区| 久久综合色8888| 亚洲h精品动漫在线观看| 国产精品18久久久久| 欧美性大战久久久久久久| 久久久久9999亚洲精品| 午夜精品在线看| 不卡在线视频中文字幕| 日韩一级视频免费观看在线| 亚洲品质自拍视频| 国产乱子轮精品视频| 欧美精品在线视频| 亚洲丝袜另类动漫二区| 狠狠色狠狠色综合系列| 欧美色中文字幕| 成人免费一区二区三区视频| 久久av资源网| 欧美日韩日日夜夜| 亚洲人午夜精品天堂一二香蕉| 久久99精品久久久久久国产越南 | 欧洲视频一区二区| 久久久www成人免费无遮挡大片| 亚洲6080在线| 色香蕉成人二区免费| 中文字幕欧美激情一区| 久久国产精品色婷婷| 91.麻豆视频| 亚洲国产欧美另类丝袜| 91论坛在线播放| 最新日韩在线视频| 99久久婷婷国产精品综合| 国产精品丝袜91| 成人性视频免费网站| 2021国产精品久久精品| 午夜欧美电影在线观看| 欧美视频在线不卡| 亚洲一区二区三区免费视频| 色综合久久99| 亚洲成人福利片| 欧美久久免费观看|