Otimização

Algoritmos de otimização podem ser usados para diminuir custos, aumentar a produtividade
e tornar a sua empresa mais eficiente.

Estatística e Aprendizagem Computacional

Explore a sua base de dados através de software que aprende e prediz comportamento futuro.

Algoritmos Avançados

De buscas em sua base de dados com texto incorreto/incompleto ao roteamento de caminhões de entrega,
há um algoritmo para encontrar a melhor solução.

Pesquisa e Desenvolvimento

Apoiados em fortes bases teóricas, temos os cérebros para ajudá-lo através de soluções inovadoras.

Sobre a empresa

Nossa empresa desenvolve soluções de software baseando-se em técnicas matemáticas, estatísticas, e computacionais para uma grande variedade de necessidades.

Nossa empresa é formada por Engenheiros e PhDs, pessoas que conhecem e apreciam as ciências e também se divertem aplicando seu conhecimento teórico em soluções de software para problemas bastante concretos. Somos motivados por desafios e sabemos que cada projeto é único e nos traz novos conhecimentos e ideias.

Nosso trabalho consiste em avaliar uma questão ou problema enfrentado por sua empresa, por exemplo, a otimização do consumo de matéria-prima. Utilizando princípios de pesquisa operacional, tentamos encaixar a questão em algum processo conhecido (não reinvente a roda!) e então elaboramos um protótipo para testes de validação. Uma vez que os testes demonstrem a viabilidade da solução, implementamos uma versão que automatiza o máximo possível das tarefas e permite ao cliente se concentrar naquilo que é mais importante em seu negócio, cabendo ao software desenvolvido se encaixar a empresa e não o contrário.

Contato

Iniciando um projeto

Geralmente um projeto começa a partir de uma questão bem simples, como as seguintes, para as quais já elaboramos soluções bem sucedidas:

Itens e estoque

Quais itens e quanto devo comprar para manter em estoque?

Resposta instantânea

Quero que meu site permita buscar minha base de dados utilizando nomes cuja grafia pode ser diferente da digitada, e a resposta tem que ser instantânea!

Detecção de fraudes

É possível identificar contas no meu sistema que provavelmente são fraudulentas somente analisando os dados do cadastro e faturamento?

Minimizar custos

Como dimensionar um móvel para produção seriada de forma a minimizar a perda de matéria prima (chapas de MDF/algomerado)?

serviços

Um pouco do que fazemos

Clique para visualizar

Empilhamento de peças
Estabilidade para o descarregamento e transporte de peças não homogêneas em pallets.

Empilhamento

Neste projeto desenvolvemos soluções para descarga robótica de peças heterogêneas com empilhamento estável em pallet para transporte em roletes.

Nosso algoritmo garante a integridade da pilha durante toda a sua construção, minimizando o número de pilhas geradas e portanto facilitando a operação em fábricas que produzem lotes pequenos e variados.

Esquema de corte
Menos de 1% de descarte de material.

Otimização

A otimização consiste em minimizar ou maximizar uma função objetivo sujeito a restrições impostas pelo modelo. Muitas vezes a função objetivo é simplesmente o custo de produção de um item e as restrições se referem a condições impostas pelo processo de fabricação, disponibilidade de matéria prima entre outros fatores.

Nosso otimizador de corte

Para obter cortes eficientes de chapas de MDF/algomerado são gerados diversos esquemas de corte, minimizando o custo total de material utilizado. Pode-se dispor de diversos tamanhos de chapa para que o algoritmo escolha quais chapas usar. A solução final é composta de diversos esquemas e suas respectivas quantidades de execução.

Para computar as soluções são necessários diversos algoritmos de otimização. Há algoritmos especializados em gerar esquemas de corte eficientes e outros algoritmos, como Simplex e Programação Genética, utilizados para compor uma solução global através dos esquemas gerados individualmente.


Estatística e Aprendizagem Computacional

Métodos estatísticos obtém correlações entre dados, determinam quais são as variáveis mais importantes para explicar um fenômeno, extrapolam um modelo matemático a partir de amostras e muito mais. Técnicas de Aprendizagem Computacional permitem treinar softwares classificadores que analisam os dados e predizem o valor de uma variável depentente com excelente taxas de acerto.

Detecção de contas fraudulentas

Utilizando uma enorme base de dados onde uma fração das contas foi identificada como fraudulenta (manualmente ou através de outros métodos), treinamos um modelo de Random Forests para a classificação automática de registros suspeitos.

Este modelo consiste em uma coleção de árvores de decisão, sendo que cada uma analisa um subconjunto das variáveis e emite um voto ('conta suspeita' ou 'conta normal'). A decisão da floresta depende dos votos das árvores que a compõe (por exemplo, 2/3 dos votos são necessários para marcar a conta como suspeita automaticamente).

A floresta é obtida através de algoritmos que analisam uma amostra dos dados já classificados. A verificação da qualidade dos resultados é feita através de validação cruzada, ou seja, o classificador é testado em uma parte da amostra que não foi usada para treino e nesta parte da amostra ela deve exibir uma taxa de acerto bem alta.

Árvore de decisão
Uma árvore pode ser usada para classificar dados fazendo uma série de questões do tipo Sim/Não até chegar a um nó folha (resultado da classificação).


Algorítmos avançados

Algoritmos são a essência do software. Seja para encontrar a menor rota que visita todos os pontos selecionados de um mapa ou para controlar um elevador num prédio de cem andares, uma solução algorítmica é necessária para evitar desperdícios e maximizar a eficiência.


Estrutura de dados Trie
Uma forma de armazenar um dicionário de palavras para efetuar buscas de forma eficiente.

Origens Africanas

Implementamos o sistema de busca de nomes por aproximação no sítio African-Origins. Os nomes africanos foram registrados por Europeus de forma inconsistente, sendo que a maioria dos nomes difere levemente da grafia atual. Utilizamos um índice na forma de um trie e desenvolvemos um algoritmo que rapidamente calcula uma distância baseada em alterações de grafia para ordenar nomes por proximidade em relação ao termo pesquisado.

Toda a solução foi pensada com alta performance em mente, sendo que na média leva-se menos de 30 milisegundos para encontrar os 100 nomes mais próximos do termo consultado, numa base de quase 100.000 registros (implementado na forma de um web-service programado em Java).



Tratamento de ruído em imagens
É possível reduzir drasticamente certos tipos de ruído utilizando características morfológicas das imagens.

Design automático de operadores morfológicos

Neste trabalho científico em conjunto com os grupos de Visão Computacional e de Otimização Contínua da Universidade de São Paulo, desenvolvemos a baste teórica e uma implementação de software para o design automático de operadores morfológicos para tratamento de ruído em imagens através de treino estatístico.

O artigo foi publicado no prestigioso IEEE Transactions on Image Processing, vol. 16, issue 2, pg. 453-462 (2007). O código fonte do software que faz o treinamento, bem como testes de validação cruzada estão disponíveis neste link.


Pesquisa e desenvolvimento

A busca incessante por conhecimento é fundamental para enfrentar os desafios de pesquisa operacional.

Research is the process of going up alleys to see if they are blind.

Marston Bates

Histórico de pesquisa e desenvolvimento

Há uma década nosso pessoal contribui na pesquisa de tópicos de matemática e ciência da computação em parceria com diversas universidades, como USP, a UNICAMP, a Emory University, entre outras.

Somos engenheiros e doutores que gostam tanto de pesquisa básica quanto de pesquisa aplicada.

contato

Fale conosco

Você pode entrar em contato conosco através do e-mail

DotProduct

Av. Água Fria, 1535 - Sala 6 São Paulo - SP 02333-001 +55 11 98448-0600