表上作业法-运输问题(Java)
生活随笔
收集整理的這篇文章主要介紹了
表上作业法-运输问题(Java)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 前言
設計Java程序使用表上作業法求解產銷平衡運輸問題。本文思路:
若對以上方法、概念不熟悉請自行補充。
2 運輸問題例題
采用清華大學第四版運輸問題,題目如下:
單位運價
初始基本可行解
檢驗數表
最優解
3 程序
pacakage algori:算法
pacakage main:程序運行接口
pacakage transproblem:運輸問題初始參數
pacakage util:工具方法
package algori;import java.util.Arrays;public class TableDispathcingMethod {//運價表int[][] cost;//存放調運方案int[][] initialSolution;//檢驗數表int[][] locationOfBasicVar;// 檢驗數int[][] reducedCost;int[][] optimalSolution;public TableDispathcingMethod(int[][] cost, int[] supply, int[] demand) {this.cost = new int[supply.length][demand.length];for (int i = 0; i < cost.length; i++) {this.cost[i] = Arrays.copyOf(cost[i], cost[i].length);}this.initialSolution = new int[supply.length][demand.length];this.reducedCost = new int[supply.length][demand.length];for (int[] ints : reducedCost) {Arrays.fill(ints, Integer.MAX_VALUE);}//最小元素法 獲得初始基本可行解GreedyAlgori greedyAlgori = new GreedyAlgori(cost, supply, demand, initialSolution);//基變量位置this.locationOfBasicVar = greedyAlgori.basicVar;//求檢驗數new ReducedCost(this.cost, reducedCost, locationOfBasicVar);//尋找閉合回路ImprovedClosedLoop ilp = new ImprovedClosedLoop(reducedCost);optimalSolution = ilp.optimize(initialSolution);writeAns();}public void writeAns() {System.out.println("\n最優解: ");for (int i = 0; i < optimalSolution.length; i++) {System.out.println(Arrays.toString(optimalSolution[i]));}} }4 運行結果
{7=1, 3=2, 2=3, 6=4},等號前的數字為檢驗數的位置,后的數字為搜索時的順序。?
5 附錄
(1條消息) 表上作業法-運輸問題(Java)-Java文檔類資源-CSDN下載
總結
以上是生活随笔為你收集整理的表上作业法-运输问题(Java)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 过滤数组中的重复元素,F
- 下一篇: dump java崩溃自动 不生成_基于