Ir para o conteúdo principal

Montando Conjuntos de Blocos de Brinquedo com Gurobi & Databricks: Uma Introdução Suave à Otimização

Assembling Toy Brick Sets with Gurobi & Databricks: A Gentle Introduction to Optimization

Published: March 31, 2025

Varejo e bens de consumo8 min de leitura

Summary

  • Otimização Matemática para Tomada de Decisões: Ao contrário do aprendizado de máquina tradicional, a otimização matemática ajuda as empresas a determinar o melhor curso de ação enquanto gerencia múltiplas restrições, abordando desafios como sortimento de produtos, estoque, preços, logística e gestão da cadeia de suprimentos.
  • Exemplo de Cenário para Otimização: O blog ilustra conceitos de otimização usando um cenário de conjunto de blocos de brinquedo, onde um solucionador navega inteligentemente através de um vasto número de possíveis combinações de blocos para determinar os melhores conjuntos para construir minimizando as peças restantes.
  • Integração Gurobi & Databricks: As empresas podem aproveitar o solucionador Gurobi dentro do Databricks para resolver eficientemente problemas de otimização, garantindo a preparação de dados sem interrupções, resolução de problemas escalável e integração em fluxos de trabalho operacionais para uma melhor tomada de decisões.

À medida que mais e mais organizações adotam a análise de dados, uma gama mais ampla de problemas está sendo trazida para ser resolvida. Embora as equipes de ciência de dados geralmente sejam bem versadas em técnicas tradicionais como análise estatística e aprendizado de máquina, bem como tecnologias emergentes como IA, ainda existe uma classe de problemas que é mais facilmente abordada usando otimização matemática.

As funções de negócios geralmente têm a tarefa de tomar decisões que maximizem os benefícios de um processo enquanto gerenciam múltiplas, às vezes conflitantes, restrições. Ao contrário do aprendizado de máquina clássico que prevê um resultado futuro com base em variáveis de estado atuais, a otimização ajuda os tomadores de decisão a identificar o conjunto de ações necessárias para melhor alcançar um determinado resultado. As soluções para esses problemas raramente são diretas e exigem o exame de inúmeros componentes interativos para identificar a melhor solução. Alguns desafios frequentemente encontrados desse tipo incluem:

  • Sortimento de Produtos - encontrar a combinação certa de produtos para satisfazer as necessidades do cliente e maximizar os lucros enquanto lida com espaço limitado na prateleira
  • Inventário - gerenciamento de níveis de estoque para minimizar o capital preso em inventário, ao mesmo tempo em que é capaz de satisfazer a demanda do cliente
  • Preços & Promoções - identificando o preço base ideal e descontos promocionais que maximizam os lucros, dada a complexidade da demanda do consumidor e possíveis respostas dos concorrentes
  • Layout - identificando o layout ideal de produtos em uma prateleira que maximiza o potencial de receita de uma unidade de espaço, lidando com o dimensionamento variável do produto e a necessidade de fornecer aos consumidores acesso a uma variedade de opções de produtos
  • Publicidade - encontrar a combinação certa de veículos e canais de publicidade, todos diferindo em termos de alcance e custo, para maximizar a resposta do consumidor minimizando o investimento
  • Programação de Produção - alocando recursos finitos de trabalho e material contra uma determinada capacidade de produção para apoiar a produção eficiente e oportuna de bens para atender à demanda
  • Utilização de Equipamentos - minimizando o tempo de inatividade causado por falhas ou ineficiências do equipamento através de manutenção programada
  • Logística - identificando o agrupamento apropriado de itens e roteamento de veículos para atender aos objetivos de entrega, trabalhando dentro das restrições de capacidade do motorista e do veículo
  • Cadeia de Suprimentos - equilibrando a entrega e armazenamento de mercadorias entre fornecedores, centros de distribuição e lojas para atender de forma confiável a demanda, minimizando o custo

As soluções para esses problemas são frequentemente encontradas testando repetidamente cenários de "e se" - fazendo ajustes em cada cenário para simular várias condições para avaliar riscos e estratégias. Para acelerar esse processo, podem ser utilizadas soluções de software especializadas. Existem soluções prontas para uso específicas para tipos específicos de problemas de otimização, bem como solucionadores de otimização comerciais e de código aberto que permitem modelos matemáticos personalizados para atender a uma ampla gama de necessidades de negócios. No coração de todas essas soluções estão algoritmos de otimização projetados para encontrar eficientemente uma solução ótima sem ter que enumerar exaustivamente todas as opções possíveis.

Solucionadores de nível comercial como o Gurobi, juntamente com plataformas de dados e análises como o Databricks, estão sendo cada vez mais utilizados por empresas para resolver desafios de otimização. Essas plataformas ajudam a preparar as entradas de dados e transformar as saídas do solucionador em aplicações acionáveis. Neste blog, demonstraremos como o Gurobi e o Databricks podem trabalhar juntos para resolver um problema simples de otimização, fornecendo às equipes um ponto de partida para enfrentar desafios semelhantes em suas próprias organizações.

Otimizando uma Construção de Coleção de Blocos de Brinquedo

Para nos ajudar a explorar como o Gurobi e o Databricks podem ser usados para resolver problemas de otimização, começaremos com um cenário simples e ilustrativo. Imagine que você é uma criança (ou um adulto) e possui os seguintes quatro conjuntos de LEGO® Star Wars:

  1. LEGO® Star Wars 75168: Yoda’s Jedi Starfighter (262 peças)
  2. LEGO® Star Wars 75170: The Phantom (269 peças)
  3. LEGO® Star Wars 75162: Y-Wing (90 peças)
  4. LEGO® Star Wars 75160: U-Wing (109 peças)

Como muitas pessoas, você monta cada conjunto de acordo com as instruções, e quando termina, desmonta cada um, combinando os blocos em um grande balde (Figura 1).

Um grande balde de blocos de brinquedo de nossos quatro conjuntos originais
Figure 1.  A big bucket of toy bricks from our four original sets

A pergunta que você tem agora é, quais outros conjuntos oficiais você poderia construir com este balde de blocos? Para responder a isso, precisamos esclarecer quatro elementos de um problema de otimização:

  • Parâmetros de entrada - Os parâmetros de entrada definem o contexto para o problema que estamos tentando resolver. Em nosso exemplo, um parâmetro de entrada é o número de cada tipo de tijolo disponível em nossos quatro conjuntos originais.
  • Variáveis de Decisão - As variáveis de decisão definem as escolhas que temos ou as decisões que precisamos tomar. Neste exemplo, os diferentes conjuntos que podemos construir definem nossas variáveis de decisão.
  • Objetivos - Nossos objetivos são as metas que buscamos minimizar ou maximizar, representadas por uma expressão matemática. Neste exemplo, estamos tentando maximizar o número e o tamanho dos conjuntos construídos, enquanto também minimizamos o número de tijolos restantes após a construção.
  • Restrições - As restrições representam condições ou restrições que devem ser atendidas para que uma solução proposta seja considerada válida. Em nosso exemplo, a única restrição é que qualquer conjunto que decidirmos construir deve ser completo usando as peças de tijolo necessárias especificadas pelo conjunto oficial. Além disso, vamos limitar nosso balde de tijolos para conter apenas os tijolos dos quatro conjuntos originais com os quais começamos.

Com esses elementos definidos, agora podemos começar a analisar as possíveis soluções. Com 730 blocos individuais em nosso balde, poderíamos enfrentar mais de 1075 combinações possíveis. O fato de haver muitos blocos idênticos em cada conjunto e mais entre esses conjuntos reduz esse número, mas o número resultante de combinações potenciais ainda é esmagador. Precisamos de uma maneira inteligente de navegar no espaço do problema. É aqui que o solucionador entra.

A mágica por trás do solucionador é que ele pode examinar o problema (definido em termos de parâmetros de entrada, variáveis de decisão, etc.) e explorar matematicamente o espaço do problema para se concentrar apenas nas soluções que satisfazem as regras de negócio e melhoram os resultados. Para ilustrar isso, considere os 730 tijolos individuais em nosso balde. Não existem conjuntos a considerar que consistem em apenas 1, 2 ou 3 tijolos, então qualquer iteração que possa explorar combinações como essas pode ser eliminada da consideração.

Ao examinar de perto a definição do problema, o solucionador pode restringir fortemente o espaço do problema a ser explorado. O número esmagador de possíveis combinações agora se torna muito mais gerenciável, e através de um motor de solução altamente otimizado, os resultados restantes podem ser rapidamente avaliados para fornecer a resposta correta rapidamente.

Gurobi e Databricks: Melhores Juntos

À medida que mais e mais organizações consolidam seus ativos de dados no Databricks, é essencial que elas possam desbloquear o potencial total desses dados para resolver uma ampla gama de necessidades de negócios. A integração perfeita do Gurobi com a Plataforma de Inteligência de Dados Databricks significa que, quando as organizações encontram desafios de otimização, elas podem preparar os ativos de dados no local sem a necessidade de replicá-los para outra plataforma. A equipe de operações, familiarizada com a otimização, pode então empregar os recursos do ambiente Databricks para resolver o problema de maneira escalável, eficiente em tempo e recursos.

Com a saída do solucionador capturada dentro do Databricks, a organização pode então integrar os resultados do solucionador nos vários fluxos de trabalho operacionais orquestrados dentro do ambiente. E, com acesso às capacidades integradas de gerenciamento de modelos do Databricks, essas equipes podem integrar seu trabalho às práticas padrão de gerenciamento e governança de modelos centradas na plataforma.

Para ajudar as organizações a começar a explorar o uso do solucionador Gurobi no Databricks, convidamos você a dar uma olhada nos seguintes notebooks de amostra, fornecendo acesso ao código passo a passo por trás do nosso exemplo de bloco de brinquedo. Por favor, note que os dois primeiros notebooks dependem da solução de exemplos de pequena escala que podem ser resolvidos usando a licença de teste gratuita que a Gurobi oferece com a instalação de sua biblioteca API Python. O terceiro notebook usa um modelo de maior escala: entre em contato com a Gurobi para obter uma licença apropriada para executar os modelos no terceiro notebook.

Para entender como as organizações podem expandir o uso do Gurobi com o Databricks, também convidamos você a assistir o seguinte webinar da Aimpoint Digital, uma empresa líder de mercado em análise na vanguarda da resolução dos desafios de negócios e econômicos mais complexos por meio de dados e tecnologia analítica. Neste vídeo, as pessoas da Aimpoint Digital examinam a integração técnica entre Databricks e Gurobi em maior detalhe e exploram várias maneiras pelas quais as organizações podem combinar essas tecnologias para resolver uma variedade de problemas de negócios.

Por fim, incentivamos você a voltar ao site do blog Databricks para revisar nosso próximo blog sobre Otimização de Sortimento, que irá desenvolver os conceitos ilustrados aqui para lidar com um cenário mais complexo e realista de interesse para muitas organizações de varejo e bens de consumo.

Baixe os notebooks

 

(This blog post has been translated using AI-powered tools) Original Post

Nunca perca uma postagem da Databricks

Inscreva-se nas categorias de seu interesse e receba as últimas postagens na sua caixa de entrada