Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.31 KB | None | 0 0
  1.  
  2. public class win2 {
  3.     public static int k;//k個suoltion
  4.     public static int x[][];//(x1, x2, x3, x4)
  5.     public static int obj[];
  6.     private static int point_k;
  7.     public int[] getBest_sol(){
  8.         return x[point_k];
  9.     }
  10.     public int getBest_obj(){
  11.         return obj[point_k];
  12.     }
  13.     public static void process(int no_s, int ite){
  14.         k = no_s;
  15.         x = new int[k][4];
  16.         obj = new int[k];
  17.         for(int i = 0; i < k; i++)
  18.         {
  19.             while(x[i][0] + x[i][1] + x[i][2] + x[i][3] != 25 || 5 * x[i][0] +
  20.                     2 * x[i][1] + x[i][2] + 6 * x[i][3] < 10)
  21.             {
  22.                 x[i][0] = (int)(Math.random() * 51);
  23.                 x[i][1] = (int)(Math.random() * 51);
  24.                 x[i][2] = (int)(Math.random() * 51);
  25.                 x[i][3] = (int)(Math.random() * 51);
  26.             }
  27.         }
  28.        
  29.         for(int i = 0; i < k; i++)
  30.         {
  31.             obj[i] = 3 * x[i][0] + 12 * x[i][1] + 9 * x[i][2] + 5 * x[i][3] +
  32.                     3 * x[i][0] * x[i][1] - 10 * x[i][0] * x[i][2] +
  33.                     6 * x[i][0] * x[i][3] + x[i][1] * x[i][2] -
  34.                     5 * x[i][1] * x[i][3] - 2 * x[i][2] * x[i][3];
  35.         }
  36.         point_k = 0;
  37.         for(int i = 1; i < k; i++)
  38.         {
  39.             if(obj[i] < obj[point_k])
  40.                 point_k = i;
  41.         }
  42.         System.out.println("\nIncumbent Solution: ");
  43.         System.out.println("x_1 = " +  x[point_k][0] + "\tx_2 = " + x[point_k][1] + "\tx_3 = " + x[point_k][2] + "\tx_4 = " + x[point_k][3]);
  44.         System.out.println("obj = " + obj[point_k]);
  45.        
  46.         for(int iteration = 1; iteration < ite; iteration++)
  47.         {
  48.             for(int i = 0; i < k; i++)
  49.             {
  50.                 if(i != point_k)
  51.                 {
  52.                     while(x[i][0] + x[i][1] + x[i][2] + x[i][3] != 25 || 5 * x[i][0] + 2 * x[i][1] + x[i][2] + 6 * x[i][3] < 10)
  53.                     {
  54.                         x[i][0] = (int)(Math.random() * 51);
  55.                         x[i][1] = (int)(Math.random() * 51);
  56.                         x[i][2] = (int)(Math.random() * 51);
  57.                         x[i][3] = (int)(Math.random() * 51);
  58.                     }
  59.                     obj[i] = 3 * x[i][0] + 12 * x[i][1] + 9 * x[i][2] + 5 * x[i][3] +
  60.                             3 * x[i][0] * x[i][1] - 10 * x[i][0] * x[i][2] +
  61.                             6 * x[i][0] * x[i][3] + x[i][1] * x[i][2] -
  62.                             5 * x[i][1] * x[i][3] - 2 * x[i][2] * x[i][3];
  63.                 }
  64.             }
  65.            
  66.             for(int i = 1; i < k; i++)
  67.             {
  68.                 if(obj[i] < obj[point_k])
  69.                     point_k = i;
  70.             }
  71.             System.out.println("\nIncumbent Solution: ");
  72.             System.out.println("x_1 = " +  x[point_k][0] + "\tx_2 = " + x[point_k][1] + "\tx_3 = " + x[point_k][2] + "\tx_4 = " + x[point_k][3]);
  73.             System.out.println("obj = " + obj[point_k]);
  74.         }
  75.     }
  76.  
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement