As tecnologias de inteligência artificial, como aprendizado de máquina, programação matemática e heurística, estão sendo cada vez mais usadas por empresas de diferentes tamanhos e setores. As aplicações são muito variadas: vão desde logística e supply chain (problemas como roteamento e localização de centros de distribuição e fábricas), serviços financeiros (minimização de riscos, detecção de fraudes, análise de crédito) a processos industriais (sequenciamento, otimização de matérias-primas), por exemplo.
Esse aumento no uso de tais tecnologias pode estar ligado a vários motivos, como avanços no poder de computacional das máquinas, coleta e uso intensivo de dados, e tomadores de decisão se baseando mais em sistemas de apoio à decisão (e não apenas em seus sentimentos e experiências). Essa transformação digital está forçando as empresas a usar novas tecnologias e evoluir suas estruturas.
No entanto, a decisão sobre qual tecnologia usar para resolver um problema não é fácil. Cada um deles tem suas vantagens e desvantagens, visto que irão resolver o problema de maneiras diferentes, por isso é importante utilizar aquela que mais se adapta à aplicação, observando aspectos como agilidade para encontrar uma solução, adaptabilidade da aplicação às mudanças nos dados e interpretabilidade dos resultados, por exemplo. Outro aspecto é a otimalidade das soluções propostas.
Uma solução aqui pode ser definida como a decisão proposta pela tecnologia. Uma solução viável é aquela que satisfaz todas as restrições existentes. Uma solução ótima é uma solução viável que garante o melhor resultado: nenhuma outra solução pode resultar em uma decisão melhor. Existe apenas uma tecnologia de IA que pode garantir a otimização de uma solução em alguns casos: a programação matemática.
A programação matemática consiste na criação de modelos matemáticos, contendo um conjunto de variáveis e parâmetros que serão utilizados nas equações que definem as restrições e a função objetivo que será maximizada ou minimizada. A natureza das variáveis e equações vai determinar a classe do modelo, se é uma programação inteira ou não linear, por exemplo. Dependendo das características do modelo (como a convexidade e suavidade das funções), é possível garantir a otimalidade das soluções propostas. Isso ocorre porque os solvers - softwares capazes de resolver tais modelos - são capazes de comprovar a otimalidade da solução.
Claro, nem sempre é importante garantir que a solução proposta seja ótima. Por exemplo, há muitos casos em que o problema é tão complexo que basta encontrar uma solução viável ou "boa". No entanto, em algumas situações, a decisão é tão importante, ou a diferença entre uma solução "boa" e uma ótima é tão significativa (em termos financeiros, por exemplo), que é importante ter certeza de que a decisão que está sendo tomada é ótima.
Portanto, ao definir qual tecnologia de IA usar, certifique-se de identificar claramente quais são os principais aspectos de sua aplicação: se a otimização for importante, você deve considerar a programação matemática como sua opção principal.
Autor: Cassiano Lima - Consultor Senior na Cassotis Consulting
Coautor: Emmanuel Marchal - Managing Partner na Cassotis Consulting