Advertisement
lmarioza

Untitled

Nov 10th, 2017
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.84 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6. package tp2aeds;
  7.  
  8. /**
  9.  *
  10.  * @author lucasmarioza
  11.  */
  12. public class Tp2AEDS {
  13.     public static int n =6;
  14.    
  15.     public static int a[][] = {{2, 7, 9, 3, 4, 8, 4, 3},
  16.                                {4, 8, 5, 6, 4, 5, 7, 2}};
  17.     public static int t[][] = {{2, 3, 1, 3, 4},
  18.                                {2, 1, 2, 2, 1}};
  19.    
  20.     public static int pd[][] = {{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1}};
  21.    
  22.     public static int calCustoPD(int esteira,int estacao){
  23.         if(estacao == n) return a[esteira][estacao+1] + a[esteira][estacao];
  24.        
  25.         if(pd[esteira][estacao] != -1) return pd[esteira][estacao];
  26.        
  27.         int ansAtual = calCustoPD(esteira,estacao+1);
  28.         int ansTroca =calCustoPD(esteira==0?1:0,estacao+1) + t[esteira][estacao-1];
  29.        
  30.         return pd[esteira][estacao] = Math.min(ansAtual,ansTroca)+a[esteira][estacao];
  31.     }
  32.    
  33.     public static int calCustoGreedy(int esteira,int estacao){
  34.         if(estacao == n) return a[esteira][estacao+1] + a[esteira][estacao];
  35.        
  36.         if(a[esteira][estacao+1] <= a[esteira==0?1:0][estacao+1]+ t[esteira][estacao-1]){
  37.             System.out.println(esteira+"\t"+(estacao+1));
  38.             return calCustoGreedy(esteira,estacao+1)+a[esteira][estacao];
  39.         }
  40.         System.out.println((esteira==0?1:0) + "\t" + (estacao+1));
  41.         return calCustoGreedy(esteira==0?1:0,estacao+1)+a[esteira][estacao]+ t[esteira][estacao-1];
  42.     }
  43.    
  44.     public static void main(String[] args) {
  45.         int ans0 = calCustoPD(0,1)+a[0][0];
  46.         int ans1 = calCustoPD(1,1)+a[1][0];
  47.         System.out.println("PD:");
  48.         System.out.println("Esteira\tEstacao");
  49.         int esteira;
  50.         if(ans0 <= ans1){
  51.             esteira =0;
  52.             System.out.println("0\t1");
  53.         }else{
  54.             esteira =1;
  55.             System.out.println("1\t1");
  56.         }
  57.         for(int i=1;i<n;i++){
  58.             if(pd[esteira][i] != pd[esteira][i+1] + a[esteira][i]) esteira = esteira==0?1:0;
  59.            
  60.             System.out.println(esteira+"\t"+(i+1));
  61.         }
  62.         System.out.println("resposta:"+Math.min(ans0,ans1));
  63.        
  64.         System.out.println("\n--------------------\n");
  65.        
  66.        
  67.         int ansG;
  68.         System.out.println("Greedy:");
  69.         System.out.println("Esteira\tEstacao");
  70.         if(a[0][0]+a[0][1] <= a[1][0]+a[1][1]){
  71.             System.out.println("0\t1");
  72.             ansG = calCustoGreedy(0, 1)+a[0][0];
  73.         }else {
  74.             System.out.println("1\t1");
  75.             ansG = calCustoGreedy(1,1)+a[1][0];
  76.         }
  77.         System.out.println("resposta:"+ansG);
  78.     }
  79.    
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement