Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- package tp2aeds;
- /**
- *
- * @author lucasmarioza
- */
- public class Tp2AEDS {
- public static int n =6;
- public static int a[][] = {{2, 7, 9, 3, 4, 8, 4, 3},
- {4, 8, 5, 6, 4, 5, 7, 2}};
- public static int t[][] = {{2, 3, 1, 3, 4},
- {2, 1, 2, 2, 1}};
- 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}};
- public static int calCustoPD(int esteira,int estacao){
- if(estacao == n) return a[esteira][estacao+1] + a[esteira][estacao];
- if(pd[esteira][estacao] != -1) return pd[esteira][estacao];
- int ansAtual = calCustoPD(esteira,estacao+1);
- int ansTroca =calCustoPD(esteira==0?1:0,estacao+1) + t[esteira][estacao-1];
- return pd[esteira][estacao] = Math.min(ansAtual,ansTroca)+a[esteira][estacao];
- }
- public static int calCustoGreedy(int esteira,int estacao){
- if(estacao == n) return a[esteira][estacao+1] + a[esteira][estacao];
- if(a[esteira][estacao+1] <= a[esteira==0?1:0][estacao+1]+ t[esteira][estacao-1]){
- System.out.println(esteira+"\t"+(estacao+1));
- return calCustoGreedy(esteira,estacao+1)+a[esteira][estacao];
- }
- System.out.println((esteira==0?1:0) + "\t" + (estacao+1));
- return calCustoGreedy(esteira==0?1:0,estacao+1)+a[esteira][estacao]+ t[esteira][estacao-1];
- }
- public static void main(String[] args) {
- int ans0 = calCustoPD(0,1)+a[0][0];
- int ans1 = calCustoPD(1,1)+a[1][0];
- System.out.println("PD:");
- System.out.println("Esteira\tEstacao");
- int esteira;
- if(ans0 <= ans1){
- esteira =0;
- System.out.println("0\t1");
- }else{
- esteira =1;
- System.out.println("1\t1");
- }
- for(int i=1;i<n;i++){
- if(pd[esteira][i] != pd[esteira][i+1] + a[esteira][i]) esteira = esteira==0?1:0;
- System.out.println(esteira+"\t"+(i+1));
- }
- System.out.println("resposta:"+Math.min(ans0,ans1));
- System.out.println("\n--------------------\n");
- int ansG;
- System.out.println("Greedy:");
- System.out.println("Esteira\tEstacao");
- if(a[0][0]+a[0][1] <= a[1][0]+a[1][1]){
- System.out.println("0\t1");
- ansG = calCustoGreedy(0, 1)+a[0][0];
- }else {
- System.out.println("1\t1");
- ansG = calCustoGreedy(1,1)+a[1][0];
- }
- System.out.println("resposta:"+ansG);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement