Pular para o conteúdo
Skillpedia
Machine learning51 mil · #1952

pymoo

Faz seu agente resolver problemas de otimização com múltiplos objetivos. É bom para encontrar as melhores soluções em engenharia e pesquisa.

O que ela faz

É uma ferramenta para encontrar as melhores soluções para problemas complexos com vários objetivos que podem entrar em conflito. Ela ajuda a descobrir os 'melhores compromissos' possíveis.

Quando usar

  • ✓Quando você tem um problema com múltiplos objetivos que precisam ser otimizados ao mesmo tempo.
  • ✓Ao tentar encontrar o melhor equilíbrio entre metas conflitantes.
  • ✓Ao analisar diferentes opções para tomar uma decisão informada.

Exemplo do que pedir para a IA

“Quero otimizar o design de um carro para ter o menor consumo de combustível e o menor custo de produção, quais são as melhores opções?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/K-Dense-AI/scientific-agent-skills/blob/main/skills/pymoo/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/K-Dense-AI/scientific-agent-skills/blob/main/skills/pymoo/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Você define o problema, escolhe um método de otimização (como NSGA-II) e a ferramenta busca as melhores soluções. Ela retorna as soluções encontradas e seus resultados.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add K-Dense-AI/scientific-agent-skills --skill pymoo

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/K-Dense-AI/scientific-agent-skills/main/skills/pymoo/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Pymoo - Otimização Multiobjetivo em Python

Visão Geral

Pymoo é um framework abrangente em Python para otimização com ênfase em problemas multiobjetivo. Resolva otimizações mono e multiobjetivo usando algoritmos de ponta (NSGA-II/III, MOEA/D, SPEA2), problemas de benchmark (ZDT, DTLZ), operadores genéticos customizáveis e métodos de tomada de decisão multicritério. Destaca-se em encontrar soluções de trade-off (frentes de Pareto) para problemas com objetivos conflitantes. Foco na versão estável pymoo 0.6.2, revisada em 2026-10-01 contra a documentação oficial atual e execuções nativas de exemplos.

Instalação

uv pip install "pymoo==0.6.2"

Para ambientes reproduzíveis, fixe uma versão: uv pip install "pymoo==0.6.2".

Dependências: O wheel 0.6.2 lançado requer NumPy, SciPy, moocore, autograd, cma, matplotlib, alive_progress e Deprecated. NumPy 2.x é suportado. A descrição atual da instalação menciona algumas dependências como opcionais; os metadados do pacote lançado governam a instalação. Joblib, Optuna e dill são dependências separadas para as receitas correspondentes.

Documentação: https://pymoo.org/ — Índice amigável para LLM: https://pymoo.org/llms.txt

Quando Usar Esta Habilidade

Esta habilidade deve ser usada quando:

  • Resolver problemas de otimização com um ou múltiplos objetivos
  • Encontrar soluções ótimas de Pareto e analisar trade-offs
  • Implementar algoritmos evolutivos (GA, DE, PSO, NSGA-II/III)
  • Trabalhar com problemas de otimização com restrições
  • Fazer benchmark de algoritmos em problemas de teste padrão (ZDT, DTLZ, WFG)
  • Customizar operadores genéticos (crossover, mutação, seleção)
  • Visualizar resultados de otimização de alta dimensionalidade
  • Tomar decisões a partir de múltiplas soluções concorrentes
  • Lidar com problemas de variáveis binárias, discretas, contínuas ou mistas

Conceitos Principais

A Interface Unificada

Pymoo usa a função minimize() consistente para todas as tarefas de otimização:

from pymoo.optimize import minimize

result = minimize(
    problem,        # What to optimize
    algorithm,      # How to optimize
    termination,    # When to stop
    seed=1,
    verbose=True
)

O objeto de resultado contém:

  • result.X: Variáveis de decisão da(s) solução(ões) ótima(s)
  • result.F: Valores dos objetivos da(s) solução(ões) ótima(s)
  • result.G: Valores brutos das desigualdades (g(x) <= 0 é factível)
  • result.H: Resíduos brutos das igualdades
  • result.CV: Violação agregada de restrições sob as tolerâncias configuradas
  • result.algorithm: Estado final do algoritmo; o histórico é retido quando solicitado

Verifique a factibilidade antes de plotar ou selecionar: Se nenhuma solução factível foi encontrada, result.X e result.F podem ser None. Com return_least_infeasible=True, um candidato retornado ainda pode violar restrições; reporte sua CV e resíduos em vez de chamá-lo de factível. Reavalie os candidatos escolhidos contra as restrições físicas originais após qualquer normalização ou reparo. Veja o contrato de resultado.

Estilos de Definição de Problema

Pymoo suporta três estilos de definição de problema:

  • Problem: Vetorizado — _evaluate recebe um lote de soluções (matriz)
  • ElementwiseProblem: Uma solução por chamada — recomendado para problemas customizados e avaliação paralela
  • FunctionalProblem: Define objetivos e restrições como funções separadas sem herdar de classes

Tipos de Problema

Mono-objetivo: Um objetivo a minimizar; negue um objetivo de maximização e registre a conversão Multiobjetivo: 2-3 objetivos conflitantes → Frente de Pareto Muitos-objetivos: 4+ objetivos → Frente de Pareto de alta dimensionalidade Com Restrições: Objetivos + restrições de desigualdade/igualdade Variáveis Misturadas: Variáveis contínuas, inteiras, binárias e categóricas em um único problema Dinâmico: Objetivos ou restrições que variam com o tempo

Fluxos de Trabalho de Início Rápido

Nove fluxos de trabalho e trechos de adaptação dependentes do contexto estão em references/quick_start_workflows.md:

# Fluxo de Trabalho Usar quando
1 Otimização mono-objetivo um objetivo, GA ou DE
2 Multiobjetivo (2-3 objetivos) NSGA-II e uma frente de Pareto
3 Muitos-objetivos (4+ objetivos) NSGA-III ou métodos de direção de referência
4 Definição de problema customizado herdar de Problem / ElementwiseProblem
5 Tratamento de restrições restrições de desigualdade e igualdade
6 Tomada de decisão a partir de uma frente de Pareto escalonamento e seleção MCDM

…

Perguntas frequentes

O que é uma 'solução de compromisso'?

É uma solução que oferece um bom equilíbrio entre objetivos conflitantes. Por exemplo, um carro pode não ter o menor consumo de combustível possível, mas oferece um bom equilíbrio entre consumo e custo.

O que é uma 'frente de Pareto'?

É um conjunto de soluções onde você não pode melhorar um objetivo sem piorar outro. Representa todos os melhores compromissos possíveis.

Quais tipos de problemas essa ferramenta pode resolver?

Ela pode resolver problemas com um ou vários objetivos, com ou sem restrições, e até mesmo problemas com diferentes tipos de variáveis (números inteiros, binários, etc.).

Detalhes

Descrição original do autor

Solves and validates single-, multi-, and many-objective optimization with pymoo, including NSGA-II, NSGA-III, MOEA/D, constraints, Pareto approximations, reference directions, and ZDT/DTLZ benchmarks for engineering and research problems.

repo: K-Dense-AI/scientific-agent-skills

Popularidade

Estrelas no GitHub
51 mil
Posição no ranking
#1952
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas