Jump to content
gramosiri2

Busca Heurística em C

Recommended Posts

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

ed222.png.8fb0e819a978db909de4363672ff2ed7.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;
}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By martemsal
      Boa tarde, 
       
      Como faço para mostrar os eventos do dia cadastrados no banco de dados para uma tabela, segue o que fiz até o momento:
      (ele já retorna todas os meus registros com o código abaixo conforme imagem anexa, mas gostaria que ele mostrasse somente o do dia)
       
      $conn = mysqli_connect($servidor, $usuario, $senha, $dbname);
        
          $pesquisar = $_POST['pesquisar'];
          $result_eventos = "SELECT * FROM salas WHERE titlecurso LIKE '%$pesquisar%' LIMIT 50";
         
          $resultado_eventos = mysqli_query($conn, $result_eventos);
         
           echo '<table align="center">';
           echo "<tr> <th colspan='5'>Data</th> </tr>";
           echo "<tr><td class='h2' colspan='5' align='center'>";
           echo date("d/m/Y");
            echo "</td></tr>";
           echo "<tr> <th>Curso</th> <th>Turma</th> <th>Professor</th><th>Sala</th><th>Hora</th></tr>";
           while($rows_eventos = mysqli_fetch_array($resultado_eventos)){   
              echo "<tr><td align='center'>"; 
          echo $rows_eventos['titlecurso'];
          echo "</td><td align='center'>"; 
          echo $rows_eventos['titleturma'];
          echo "</td><td align='center'>"; 
          echo $rows_eventos['titleprofessor'];
          echo "</td><td align='center'>"; 
          echo $rows_eventos['titlesala'];
          echo "</td><td align='center'>"; 
          echo $rows_eventos['hora_de'];
          echo "</td></tr>";

           
      echo "</table>";
      ?>
       
      alguém pode me ajudar.
      Grato

    • By Legionario-rs
      Bom dia pessoal,
       
      Será que alguém pode me dar uma luz sobre isso? Vou postar o código mas acontece o seguinte: Mesmo com os itens configurados para não serem mostrados ele continua mostrando mas somente quando faço a pesquisa. Tem outros modos de listar todos os itens estes funcionam perfeitamente mas na pesquisa acontece isso. Se alguém poder ajudar agradeço.
       
      <%
      Dim col,colu,lista,cid_id,cid_nome,nome,lista_anunciante,msgnada
      lista=Request.querystring("lista")
      cid_id=Request.querystring("cid_id")
      cid_nome=Request.querystring("cid_nome")
      nome=Request.querystring("nome")
      %>
          <div class="site-section bg-light">
            <div class="container">
              <div class="row justify-content-center mb-5">
                <div class="col-md-7 text-center border-primary">
                  <h3><font color="green">Anunciantes Ativos</font></h3>
                </div>
              </div>
              <div class="row">
      <%
      Select Case lista
      Case "cidade"
          set lista_anunciante = lojaDB.Execute("SELECT * FROM anunciantes WHERE cid_id="& cid_id &" AND disp='S' ORDER BY nome")
          msgnada = "<h5>No momento não dispomos de nenhum comércio nesta região.</h5>"
      Case "busca"
          set lista_anunciante = lojaDB.Execute("SELECT * FROM anunciantes WHERE nome LIKE '%"& nome &"%' OR descricaop LIKE '%"& nome &"%' OR descricaog LIKE '%"& nome &"%' OR imagem LIKE '%"& nome &"%' OR imagem2 LIKE '%"& nome &"%' OR imagem3 LIKE '%"& nome &"%' OR imagem4 LIKE '%"& nome &"%' OR imagem5 LIKE '%"& nome &"%' OR imagem6 LIKE '%"& nome &"%' OR imagem7 LIKE '%"& nome &"%' OR imagem8 LIKE '%"& nome &"%' OR imagem9 LIKE '%"& nome &"%' OR imagem10 LIKE '%"& nome &"%' AND disp='S' ORDER BY nome")
          msgnada = "<h5>Nenhum comércio localizado com esse nome.</h5>"
      Case Else
          %>
          <script>window.location="./index.asp"</script>
          <%
      End Select
      If lista_anunciante.EOF Then 
          Response.Write "" & msgnada & ""
      Else 
      %>
          <%
              col=1
              if not lista_anunciante.eof then
              colu=2
              response.write ""
              while not lista_anunciante.eof
              
          Dim com_cid_id,com_id,com_nome,com_descricaop,com_imagem,com_data,com_mapalink,com_whats
          while not lista_anunciante.EOF
              com_cid_id = lista_anunciante("cid_id")
              com_id = lista_anunciante("id")
              com_nome = lista_anunciante("nome")
              com_descricaop = lista_anunciante("descricaop")
              com_imagem = lista_anunciante("imagem")
              com_data = lista_anunciante("data")
              com_mapalink = lista_anunciante("mapalink")
              com_whats = lista_anunciante("whats")
              %>
              
                <div class="col-md-6 mb-4 mb-lg-4 col-lg-4">
                  
                  <div class="listing-item">
                    <div class="listing-image">
                      <img src="images/<%=com_imagem%>" alt="<%=com_nome%>" class="img-fluid">
                    </div>
                    <div class="listing-item-content">
                      <a href="<%=com_mapalink%>" class="bookmark" data-toggle="tooltip" data-placement="left" title="Localização" target="new"><span class="icon-map"></span></a>
                      <h2><a href="http://api.whatsapp.com/send?1=pt_BR&phone=<%=com_whats%>" style="position:absolute; top:-30px;" class="bookmark" target="new"><span class="icon-whatsapp"></span></a></h2>
                      <h2 class="mb-1"><a href="detalheanunciante.asp?com_id=<%=com_id%>&url_comp=<%=Server.UrlEncode(Request.ServerVariables("QUERY_STRING"))%>"><%=left(com_nome ,23) %>...</a></h2>
                      <span class="address"><%=com_descricaop%></span>
                    </div>
                  </div>
                </div>
              <%
              if colu=col then
              response.write "<tr><td>"
              colu=1
              else
              response.write "<td>"
              colu=colu+1
              end if
              lista_anunciante.movenext
              wend
              wend
              response.write ""
              end if
              end if
      lista_anunciante.close
      set lista_anunciante=nothing
      %>
              </div>
            </div>
          </div>
    • By Legionario-rs
      Boa tarde pessoal,
       
      Será que alguém pode me dar uma luz sobre isso? Vou postar o código mas acontece o seguinte: Mesmo com os itens configurados para não serem mostrados ele continua mostrando mas somente quando faço a pesquisa. Tem outros modos de listar todos os itens estes funcionam perfeitamente mas na pesquisa acontece isso. Se alguém poder ajudar agradeço.
       
      <%
      Dim col,colu,lista,cid_id,cid_nome,nome,lista_anunciante,msgnada
      lista=Request.querystring("lista")
      cid_id=Request.querystring("cid_id")
      cid_nome=Request.querystring("cid_nome")
      nome=Request.querystring("nome")
      %>
          <div class="site-section bg-light">
            <div class="container">
              <div class="row justify-content-center mb-5">
                <div class="col-md-7 text-center border-primary">
                  <h3><font color="green">Anunciantes Ativos</font></h3>
                </div>
              </div>
              <div class="row">
      <%
      Select Case lista
      Case "cidade"
          set lista_anunciante = lojaDB.Execute("SELECT * FROM anunciantes WHERE cid_id="& cid_id &" AND disp='S' ORDER BY nome")
          msgnada = "<h5>No momento não dispomos de nenhum comércio nesta região.</h5>"
      Case "busca"
          set lista_anunciante = lojaDB.Execute("SELECT * FROM anunciantes WHERE nome LIKE '%"& nome &"%' OR descricaop LIKE '%"& nome &"%' OR descricaog LIKE '%"& nome &"%' OR imagem LIKE '%"& nome &"%' OR imagem2 LIKE '%"& nome &"%' OR imagem3 LIKE '%"& nome &"%' OR imagem4 LIKE '%"& nome &"%' OR imagem5 LIKE '%"& nome &"%' OR imagem6 LIKE '%"& nome &"%' OR imagem7 LIKE '%"& nome &"%' OR imagem8 LIKE '%"& nome &"%' OR imagem9 LIKE '%"& nome &"%' OR imagem10 LIKE '%"& nome &"%' AND disp='S' ORDER BY nome")
          msgnada = "<h5>Nenhum comércio localizado com esse nome.</h5>"
      Case Else
          %>
          <script>window.location="./index.asp"</script>
          <%
      End Select
      If lista_anunciante.EOF Then 
          Response.Write "" & msgnada & ""
      Else 
      %>
          <%
              col=1
              if not lista_anunciante.eof then
              colu=2
              response.write ""
              while not lista_anunciante.eof
              
          Dim com_cid_id,com_id,com_nome,com_descricaop,com_imagem,com_data,com_mapalink,com_whats
          while not lista_anunciante.EOF
              com_cid_id = lista_anunciante("cid_id")
              com_id = lista_anunciante("id")
              com_nome = lista_anunciante("nome")
              com_descricaop = lista_anunciante("descricaop")
              com_imagem = lista_anunciante("imagem")
              com_data = lista_anunciante("data")
              com_mapalink = lista_anunciante("mapalink")
              com_whats = lista_anunciante("whats")
              %>
              
                <div class="col-md-6 mb-4 mb-lg-4 col-lg-4">
                  
                  <div class="listing-item">
                    <div class="listing-image">
                      <img src="images/<%=com_imagem%>" alt="<%=com_nome%>" class="img-fluid">
                    </div>
                    <div class="listing-item-content">
                      <a href="<%=com_mapalink%>" class="bookmark" data-toggle="tooltip" data-placement="left" title="Localização" target="new"><span class="icon-map"></span></a>
                      <h2><a href="http://api.whatsapp.com/send?1=pt_BR&phone=<%=com_whats%>" style="position:absolute; top:-30px;" class="bookmark" target="new"><span class="icon-whatsapp"></span></a></h2>
                      <h2 class="mb-1"><a href="detalheanunciante.asp?com_id=<%=com_id%>&url_comp=<%=Server.UrlEncode(Request.ServerVariables("QUERY_STRING"))%>"><%=left(com_nome ,23) %>...</a></h2>
                      <span class="address"><%=com_descricaop%></span>
                    </div>
                  </div>
                </div>
              <%
              if colu=col then
              response.write "<tr><td>"
              colu=1
              else
              response.write "<td>"
              colu=colu+1
              end if
              lista_anunciante.movenext
              wend
              wend
              response.write ""
              end if
              end if
      lista_anunciante.close
      set lista_anunciante=nothing
      %>
              </div>
            </div>
          </div>
       
    • By groudon900
      segue o codigo que estou usando 
       
      <?php //Receber o número da página $pagina_atual = filter_input(INPUT_GET,'pagina', FILTER_SANITIZE_NUMBER_INT); $pagina = (!empty($pagina_atual)) ? $pagina_atual : 1; //Setar a quantidade de itens por pagina $qnt_result_pg = 20; //calcular o inicio visualização $inicio = ($qnt_result_pg * $pagina) - $qnt_result_pg; $result_usuarios = "SELECT * FROM vendas ORDER BY data DESC LIMIT $inicio, $qnt_result_pg"; $resultado_usuarios = mysqli_query($conn, $result_usuarios); while($row_usuario = mysqli_fetch_assoc($resultado_usuarios)){ ?> <tbody> <tr> <td><img src="../foto/foto_pagamentos/<?php echo $row_usuario['fotos'] ?>" class="foto2"></td> <td><?php echo $row_usuario['cliente'] ?></td> <td><?php echo $row_usuario['email'] ?></td> <td><?php echo $row_usuario['servico'] ?></td> <td><?php echo $row_usuario['data'] ?></td> <td>R$ <?php echo $row_usuario['valor'] ?></td> <td><?php echo $row_usuario['metodo'] ?></td> <td><?php echo $row_usuario['status'] ?></td> <td><?php echo $row_usuario['ultimaalteracao'] ?></td> <td><div class="dropdown no-arrow"> <a class="dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <i class="fas fa-ellipsis-v fa-sm fa-fw text-gray-600"></i> </a> <div class="dropdown-menu dropdown-menu-right shadow animated--fade-in" aria-labelledby="dropdownMenuLink"> <div class="dropdown-header">PAGAMENTOS:</div> <a class="dropdown-item" href="criarpagamentos?id=<?php echo $row_usuario['id'] ?>">Criar Pagamentos</a> <div class="dropdown-divider"></div> <a class="dropdown-item" href="proc_apagar_pagamentos.php?id=<?php echo $row_usuario['id'] ?>">Apagar Pagamentos</a> </div> </div></td> </tr> <?php } ?>  
      queria fazer um filtro de busca, Tipo pra buscar por um nome especifico ou serviço
    • By Santos_2015
      Aalera como faço um busca um valor na propriedade data do Jquery através de um input? tipo mostrar a div de acordo com busca e ocultar as outras.
       
      <div data-value="A" class="valor">AA</div> <div data-value="B" class="valor">BB</div> <div data-value="C" class="valor">CC</div>  
      Ex: Mostrar as div que contenham A e ocultar as restantes.
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.