Computação Natural #5: Otimização por Colônia de Formigas

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ต.ค. 2024
  • Explicação da Otimização por Colônia de Formigas, Ant Colony Optimization (ACO), através de um notebook Colab que usa a biblioteca ACO-Pants.
    Notebook "salesman_aco.ipynb": colab.research...

ความคิดเห็น • 12

  • @robertomedeiros7786
    @robertomedeiros7786 2 ปีที่แล้ว

    Obrigado pelo vídeo!

    • @algoritmoz3780
      @algoritmoz3780  2 ปีที่แล้ว

      Bom que ajudou. Eu criei um pacote de colônia de formigas chamado AntSys. Você pode encontrar no pypi e no github. Ainda não tive tempo de fazer um vídeo, mas na página do projeto (github) tem uma pasta de exemplos.

  • @Gustavo-bi4hv
    @Gustavo-bi4hv ปีที่แล้ว

    Amigo, desculpa minha pergunta idiota. Sou extremamente leigo no quesito, ML, DL e algoritmos em geral. Eu queria saber se esse algoritmo de otimização tem algum tipo de uso na vida real, mais precisamente no mercado financeiro? Se sim, poderia me dar algum exemplo, por gentileza?
    Obrigado e parabéns pela ótima didática.

    • @algoritmoz3780
      @algoritmoz3780  ปีที่แล้ว

      Olá Gustavo! Se você está interessado em técnicas para o mercado financeiro, acredito que você está procurando por técnicas de reconhecimento de padrões e predição de séries temporais. Existem várias técnicas, mas eu recomendaria você pesquisar em redes neurais artificiais (RNAs). Entretanto, são várias arquiteturas de RNAs e com aplicações diferentes. Seria necessário você aprofundar seu conhecimentos e, talvez, começar com uma arquitetura popular como as Multilayer Perceptron. Os algoritmos de otimização, como a ACO, buscam encontrar uma solução próxima do ótimo para um problema. Exemplos de aplicação são: escalonamento de horários, roteamento de veículos, alocação de recursos, entre outros.

  • @romarionascimento9805
    @romarionascimento9805 2 ปีที่แล้ว

    Estou aprendendo agora e queria saber quais códigos eu altero para um problema real, onde tenho 12 cidades e distâncias especificas de uma para outra.

    • @algoritmoz3780
      @algoritmoz3780  2 ปีที่แล้ว +1

      Você vai precisar mudar aquele trecho que começa com o comentário:#[2] Geração do grafo para o problema do caixeiro
      * A lista nodes também precisa ser alterada.
      As alterações serão guiadas pela forma que você quer passar esse problema (arquivo por exemplo) e se deseja ou é preciso mudar a representação (Eu usei como "matriz", mas podia ter usado dicionários - o que fica mais fácil para usar os nomes das cidades).

    • @romarionascimento9805
      @romarionascimento9805 2 ปีที่แล้ว

      @@algoritmoz3780 Muito obrigado. Vai ser muito útil

  • @lucianokronner
    @lucianokronner 2 ปีที่แล้ว

    Bom dia! Tudo bem?
    Voce chegou a fazer um novo pacote que seja melhor de utilizar para outros casos?
    Gostaria de entrar em contato para tirar umas duvidas.

    • @algoritmoz3780
      @algoritmoz3780  2 ปีที่แล้ว

      Olá Luciano. Eu fiz um pacote chamado antsys e já está no PyPI, mas ainda não tive tempo de gravar um vídeo.
      link no PyPI: pypi.org/project/antsys/
      Caso use em algum projeto, peço que cite para fortalecer e divulgar o projeto.
      Lá no PyPI, se você for em Homepage, vai lhe levar para o projeto no github. Lá, na pasta examples, têm dois notebooks resolvendo dois problemas diferentes (Problema da Mochila e Caixeiro Viajante).
      Abrindo o arquivo fonte, também comentei cada classe.
      Apesar de estar em inglês, acho que ficou bem intuitivo. Eu ia fazer um Wiki em português e inglês para melhorar a documentação, mas acabei me envolvendo em outros projetos.

  • @tuaneegito5552
    @tuaneegito5552 3 ปีที่แล้ว

    Como faz a alteração dos parâmetros do Solver?

    • @algoritmoz3780
      @algoritmoz3780  3 ปีที่แล้ว +1

      Quando você abre a classe Solver do pacote, você vai ver a lista de parâmetros: alpha, importância relativa do feromônio; betha, importância relativa da distância; rho, taxa de evaporação; q, feromônio depositado por formiga; limit, número de iterações; ant_count, número de formigas; elite, reforço ("multiplicador") do feromônio das formigas elite.
      Assim, caso eu desejasse alterar o número de formigas e iterações do algoritmo (não usar valores padrão), eu teria de instanciar o solver da seguinte forma:
      solver = pants.Solver(ant_count=20, limit=50)
      * O mesmo vale para os demais parâmetros.

    • @tuaneegito5552
      @tuaneegito5552 3 ปีที่แล้ว

      @@algoritmoz3780 Obrigada!!