useR! 2020 - European Hub Munique

Depois de um longo período sem posts, hoje queria comentar (e divulgar) parte da minha pesquisa de doutorado utilizando R. Sou doutorando em Eng. Produção pela UFSC, e atualmente também sou pesquisador visitante na Universidade de Bremen (na Alemanha), existe uma parceria entre as universidades e eu tô fazendo parte da minha pesquisa aqui.

Como um entusiasta de R surgiu a oportunidade de participar do useR! 2020, que seria realizado na cidade de Munique, aqui do lado de onde eu moro, além de estar perto seria a oportunidade perfeita para conhecer mais gente dessa comunidade, já que o evento costuma atrair pessoas de várias partes do mundo.

Mas aí veio a pandemia e como já esperado o evento está sendo realizado online. O lado bom é que ele se tornou gratuito e aberto a qualquer um que queira assistir no YouTube (link) as transmissões ao vivo que também ficarão gravadas.

Scheduling em sistemas distribuídos de manufatura

Minha pesquisa de doutorado está relacionado a um projeto maior chamado FASTEN, nesse projeto estamos desenvolvendo uma plataforma completa para operar sistemas distribuídos de manufatura que utilizam impressão 3d e robôs. A ideia central é ter pequenos centros de produção que se aproveitem dessas novas tecnologias e possam produzir em menor escala próximo ao cliente final, assim tornando tudo mais rápido e responsivo à mudanças.

Photo by Fasten

Meu grupo de pesquisa lida com a parte da inteligência do sistema, onde devemos aproveitar dados providos em tempo real para controlar esse sistema distribuído de manufatura, e a minha contribuição dentro disso tudo foi desenvolver um modelo capaz de alocar as ordens de produção de forma dinâmica e otimizada conforme elas chegassem no sistema, utilizando dados em tempo real e aplicações externas.

Em sistemas produtivos isso é chamado de Scheduling, quando você decide quando e como uma operação deve ser executada.

Otimizador operacional para scheduling dinâmico

O modelo desenvolvido realiza a otimização com base em um algoritmo de busca exaustiva considerando todas as opções disponíveis. Os dados são consumidos em tempo de execução provenientes de um sistema de Internet das Coisas (IoT), e por uma API externa de código aberto do Open Route Service para estimar dinamicamente tempos de transporte entre vários locais de produção e o cliente.

O modelo (em R claro), utilizou as bibliotecas dplyr para manipulação de dados, httr para comunicações HPPT, plumber para desenvolvimento da API e jsonlite para manipulação de arquivos .json. A aplicação foi implementada utilizando a arquitetura REST e a estrutura swagger. Tudo roda dentro de um Docker em um ambiente de produção.

obs.: se você tiver interesse nesse assunto de APIs, Docker e Nuvem utilizando R, aqui no blog tem uma sequência de posts que cobre o assunto passo a passo, só clicar aqui.

O modelo realiza uma otimização local para cada ordem de produção para decidir em que unidade produtiva a ordem será executada e entregue no menor tempo possível, utilizando as entradas de dados:

  • Tempos de fila
  • Tempos de preparação
  • Tempos de produção
  • Tempos de transporte

A função objetiva deve minimizar o tempo total de resposta:

A integração do modelo com as principais tecnologias relacionadas são mostradas neste diagrama:

Participação Online

Infelizmente não foi dessa vez que tive a experiência de participar presencialmente de uma conferencia focada em R, mas tenho certeza que haverão outras oportunidades no futuro. Minha apresentação foi submetida como lightning talk, que tinha o limite de 5 minutos, então não deu pra entrar em tantos detalhes da modelagem, mas pra quem quiser ver o vídeo:

disclaimer: meu inglês deu umas falhadas nessa gravação, acho que tava meio nervoso hehe =)

Até mais o/

Bom, essa é uma pesquisa que ainda está em desenvolvimento, então por enquanto ainda não consigo deixar o código público. Atualmente estou trabalhando em uma publicação mais completa abordando todo o modelo em detalhes, assim que sair divulgarei toda a implementação com código no GitHub =).

Se quiser trocar uma ideia sobre esse assunto ou qualquer outro relacionado a R, o twitter é a plataforma que mais uso para me comunicar com a galera da comunidade. Aproveito e deixo minhas outras redes também.

Até o próximo post :D