Ir para conteúdo

raPPa

Members
  • Total de itens

    61
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre raPPa

  1. raPPa

    Busca Heurística em C

    Olá preciso fazer uma busca heurística, onde a ideia é pegar o primeiro menor valor e comparar com o próximo valor, se o proximo for maior que o valor atual ele pega esse valor como o menor. No exemplo abaixo, o valor mais baixo que ele deveria encontrar seria o "-4" pois o -4 é menor que o -2 e o proximo valor de -4 é o 0 que é maior que -4, seria isso... Alguma ideia? http://i64.tinypic.com/x2rw3q.png https://www.clubedohardware.com.br/uploads/monthly_2019_04/ed222.png.199206a64b431f25b1f7e63f6eaa341f.png #include<stdlib.h> #include<stdio.h> int main(void){ int i,j; int matriz[20][20]; int ponto=0, pontoAnt=0, pontoProx=0; int maior=0,menor=0; int a=0,b=0,c=0,d=0; int linha=20; //zerando valores na matriz for(i=0;i<20;i++){ for(j=0;j<20;j++){ matriz[i][j]=0; } } //gerar valores 1 baixo for(i=0;i<2;i++){ for(j=13;j<15;j++){ matriz[i][j]=-2; } } //gerar valores 1 alto for(i=1;i<6;i++){ for(j=8;j<13;j++){ matriz[i][j]=3; } } for(i=2;i<5;i++){ for(j=9;j<12;j++){ matriz[i][j]=6; } } //gerar valores 2 baixo for(i=5;i<10;i++){ for(j=0;j<5;j++){ matriz[i][j]=-2; } } for(i=6;i<9;i++){ for(j=1;j<4;j++){ matriz[i][j]=-4; } } //gerar valores 2 alto for(i=5;i<11;i++){ for(j=14;j<20;j++){ matriz[i][j]=2; } } for(i=6;i<10;i++){ for(j=15;j<19;j++){ matriz[i][j]=4; } } for(i=7;i<9;i++){ for(j=16;j<18;j++){ matriz[i][j]=8; } } //gerar valores 3 baixo for(i=10;i<15;i++){ for(j=5;j<10;j++){ matriz[i][j]=-1; } } for(i=11;i<14;i++){ for(j=6;j<9;j++){ matriz[i][j]=-5; } } //gerar valores 4 baixo for(i=13;i<20;i++){ for(j=14;j<20;j++){ matriz[i][j]=-1; } } for(i=14;i<19;i++){ for(j=15;j<19;j++){ matriz[i][j]=-3; } } for(i=15;i<18;i++){ for(j=16;j<18;j++){ matriz[i][j]=-6; } } //valores da matriz principais matriz[0][14]=-4; matriz[3][10]=8; matriz[7][2]=-8; matriz[7][17]=9; matriz[12][7]=-7; matriz[16][16]=-9; matriz[18][4]=3; //mostrar matriz for(i=0;i<20;i++){ for(j=0;j<20;j++){ if(matriz[i][j] < 0){ printf("%d ",matriz[i][j]); }else{ printf(" %d ",matriz[i][j]); } } printf("\\n"); } printf("\\n-----------------------------------------------------------"); //busca heuristica for(i=0;i<20;i++){ for(j=0;j<20;j++){ if (i == 0 && j == 0){ menor=matriz[0][0]; maior=matriz[0][0]; } if(maior<matriz[i][j]){ maior=matriz[i][j]; if(ponto < pontoAnt && ponto < pontoProx){ ponto=maior; pontoAnt=matriz[i][j]; pontoProx=matriz[i][j]; } a=i+1; //valor coluna b=j+1; //valor linha } if(menor>matriz[i][j]){ menor=matriz[i][j]; c=i+1; //valor coluna d=j+1; //valor linha } } } printf("\\n\\n* Busca Heuristica"); printf("\\n-> Valor mais baixo: (%d) -> Coluna: [%d], Linha: [%d] -> Passos: {%d}",ponto,c,d); return 0; }
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.