Machine Learning (ML) não é um conceito novo, se hoje está intimamente relacionado à Inteligência Artificial (IA), não é dependente dela para existir, em outras palavras:
A IA
torna-se viável via ML, e não o inverso
Pode-se dizer que seu conceito já vem
sendo aplicado há tempos, onde basicamente tem-se um conjunto de ações
coordenados por algoritmos de otimização. A ideia é, por meio do ML, os
sistemas de computador aprendem a realizar tarefas como: classificação,
agrupamento, predições, reconhecimento de padrões, etc.
Vamos falar um pouco do que tem sido
falado (com inputs de Zotalis, et al).
Como em um aprendizado tradicional, os
sistemas são treinados usando vários algoritmos e modelos estatísticos para
analisar dados de amostra; então as informações obtidas durante a fase de
treinamento são usadas para identificar padrões ou tomar decisões com base em
novos dados.
Dependendo do estilo de aprendizagem,
os algoritmos de ML podem ser agrupados em quatro categorias:
1. Aprendizagem
supervisionada
2. Aprendizagem
não supervisionada
3. Aprendizagem
semi-supervisionada: que é uma combinação das duas categorias anteriores.
4. Aprendizagem
por reforço, onde os algoritmos tentam prever a saída para um problema baseado
em um conjunto de parâmetros de ajuste.
Ao usar
técnicas de ML, há dois parâmetros principais a serem considerados: (1)
intensidade computacional e (2) velocidade de uma determinada técnica. O mais
apropriado depende do algoritmo de ML escolhido.
Se buscarmos algo muito novo e que mexe com o
imaginário de todos e ainda mais para quem pesquisa e trabalha com Transportes
e com IoT (Internet das Coisas), Machine Learning e Smart Transportation (ST) se
compõem, completam e nos levam para o futuro do transporte de cargas e pessoas.
ST é um conceito bastante amplo que
abrange a otimização de rotas, estacionamento, semáforos de rua e controle de
tráfego, prevenção e detecção de acidentes, anomalias de estradas e aplicativos
de infraestrutura, entre muitos outros.
Se pararmos para pensar em softwares e
sistemas mais completos que utilizamos em nosso trabalho no campo da logística
e mais especificamente em Transportes vamos notar que ITS é uma realidade, que
está aí no TMS, softwares de roteirização, GPS e tracking por celular, rádio ou
satélite conectados à uma Torre de Controle.... e por aí vai....
Mas como fazer acontecer, em tempos em
uma vida mais que real, quando não temos o estado da arte em ITS, e tão pouco,
supercomputadores e megas usuários que operam IA em nossas Torres de Controle?
O conceito de ML não necessariamente
só se materializa com essa parafernália fascinante, vamos chegar lá, mas
podemos ter nosso ‘próprio’ Machine learning conectando nossos softwares, ou
ITS’s, em Torres de controle conectadas com a operação em tempo real.
ML também é usar e conectar de forma
inteligente nossos recursos em um processo interativo, onde a própria operação ensina
o Control Tower a melhorar a operação do dia seguinte, e assim cada dia mais
eficaz até que a otimização ocorra em Tempo Real.
O ML possível e eficiente utiliza não
só ITS prontos, pois não são otimizantes em si. Esses sistemas são como peças de
lego que isoladas não significam nada, e muitas vezes, mesmo encaixadas não
funcionarão como um ML, seria necessária uma interação intuitiva de um usuário
ou operador da torre, que por mais experiente que fosse, não levaria a operação
à condição ótima, muito menos para solução de problemas e incrementos de
qualidade em tempo real.
Os algoritmos ou mesmo processos
empíricos que tornam a solução continuamente mais efetiva, à medida que o
mecanismo ‘aprende’ com a execução e erros cometidos. O processo evolui, e os
erros tornam-se menos frequentes, até que o mecanismo de execução busca a
solução ótima.
O que quero dizer aqui é que em
processos simples ou complexos, que buscamos fazer melhor, não necessariamente
temos que chorar sobre erros e ineficiências derramadas, se não possuímos uma
Inteligência Artificial.
Mas como trazer isso tudo para a vida
real, e solucionar um problema que vem tirando o sono da gente, desde que as águas foram divididas com não tão nova
lei do motorista e fantástica greve dos carreteiros de 2018?
Não é pecado, e não deve ser vergonha,
dizer que o antiquíssimo método de “tentativa e erro” é uma forma primária e
simples de ML
ML também é um mecanismo de execução que se
auto aprimora com a inserção de dados apreendidos
Utilizando o conceito de ML básico,
composto dos elementos de ITS, como (lista longe de ser exaustiva):
TMS, softwares de roteirização, GPS e tracking
por celular, rádio ou satélite, sistemas que se integram aos controles e
alimentam um BI, softwares de controle e melhoria das funções do veículo,
buscando reduzir custos de manutenção e combustível com o controle em tempo
real do motorista, melhorando sua condução e tudo isso conectados à uma Torre
de Controle
Mas voltando ao lego, ITS’s são peças.
A questão é como otimizar o todo e não as respectivas partes correspondentes às
peças?
Posso ter uma boa roteirização,
maximizando o número de entregas e ‘estourar’ a jornada de trabalho do
motorista? Tenho todos os relatórios de viagem em um lindo BI (Business
Intelligence), consigo um OTD (on time deliver) dos sonhos e gasto uma
enormidade de horas extras com motoristas? Mas dá pra piorar o problema:
Tenho um
Control Tower com sistemas e pessoas eficientes, equipamentos de controle e
caminhões de última geração, mas não consigo ter o caminhão rodando 24 x 7 sem descumprir
a lei do motorista ou cumpri-la com um custo dessa mão de obra incompatível com
os valores de frete de mercado.
O e-commerce trouxe de volta a
necessidade da pontualidade ao extremo e minimização dos tempos de viagem,
implicando em altíssima produtividade do veículo. O Operador vai ter ótimo
faturamento se atender esses quesitos, porque há volume e frequência, mas a rentabilidade
só virá se controlar os custos, e é fundamental minimizar o “custo” motorista.
De
forma objetiva: motorista passou a ser um Asset tão importante quanto o
caminhão
No passado, era bom o bastante fazer o
caminhão rodar, a legislação era mais flexível, os salários tinham seu
componente fixo mais baixo, o motorista queria rodar mais para ganhar mais com
a parte variável de sua remuneração. A verdade é que ninguém prestava atenção
ao motorista.
Otimizar era fazer o caminhão rodar,
agora otimizar é fazer o caminhão não parar com o mínimo custo de motorista, ou
seja
Eficiência e rentabilidade estão na otimização
dos Assets Caminhão & Motorista
A questão que se apresenta é como
construir um Machine Learning com os recursos disponíveis e acessíveis, e que
dê um passo além, que nos permita alocar motoristas à caminhões, de modo a
minimizar o custo e obedecer a legislação vigente, além de preservar a
segurança da operação?
Como em muitas questões, a resposta
está no enunciado: Utilização de Pesquisa Operacional.
Bom, antes, vale a pena de forma
sumarizada e simples falar de Pesquisa Operacional (PO).
PO é uma ciência que busca resolver
problemas concretos de decisão, normalmente uma disciplina desenvolvida por
campos de engenharia e administração; não necessariamente ensejam modelagens e
algoritmos complexos, mas devem manter seu princípio de uma modelagem
matemática de apoio à decisão, dado um problema real e específico.
Com a ajuda do Prof. Dr. Rui Botter do
CELIP/USP, vamos tentar colocar um pouco de luz ao problema de alocação de
motoristas, com a abordagem de PO.
Um problema de
alta complexidade bastante relevante nos estudos de PO é a alocação de força de
trabalho e a programação de trabalhadores de modo a atender à demanda por
recursos que variam ao longo do tempo, como por exemplo, alocação de operadores
em telefonia, enfermeiras em hospitais, policiais e pessoas de transporte
(tripulação de avião,motoristas de ônibus, etc.). Dentre estes problemas,
destaca-se o problema da programação de tripulações (Crew
scheduling problem).
•
A etapa inicial da
solução do problema consiste na coleta de dados das viagens realizadas,
buscando: tempos e movimentos das frotas, quantidade de caminhões e motoristas
ustilizados, distâncias percorridas, coletas e entregas realizadas no período
de medição, ocupação dos caminhões e demais medições de produção do conjunto
caminhão/motorista.
•
Consequência disso numa segunda etapa é
determinada a frota de caminhões para o atendimento da demanda ou denominada de
alocação dos veículos que executarão as viagens.
•
A terceira etapa deve
determinar a alocação dos motoristas, tomando como base as viagens alocadas a
cada veículo da frota em operação. Nesta etapa, se determina a quantidade
necessária de motoristas e definindo, portanto, as jornadas diárias de
trabalho.
•
A etapa final do planejamento consiste em
determinar as escalas diárias, semanais e mensais da tripulação, ou seja, como
é feito o rodízio das tripulações.
A questão
dinâmica a ser abordada nesse problema tem várias facetas e a principal delas é
a mudança no perfil de viagens quando por exemplo o tempo das mesmas muda ou
novas rotas são acrescentadas.
Os Objetivos e Condicionantes da
alocação de motoristas, podem ser sumarizados com os seguintes elementos:
•
Minimizar os custos (com salários, adicionais, quantidade de motoristas, de deslocamento de
pessoal e bases de apoio)
•
Delinear o posicionamento
de bases de apoio onde motoristas farão a troca de turnos e os deslocamentos
decorrentes
•
Atender regras
trabalhistas e operacionais (restrições).
•
Cobrir todas as viagens previstas no período
de tempo abrangido pela análise (diária, semanal ou mensal)
Muitas vezes os
sistemas que abordam o problema de alocação de motoristas esbarram na falta de
uma estrutura de dados e informações para que os resultados possam ser
confiáveis e efetivamente utilizados pela empresa.
•
Por exemplo, conhecer as rotas com precisão e
os tempos de viagem e paradas é essencial, incluindo o acompanhamento em Real
Time das mudanças. Uma chuva que atrasa as viagens deve ser “percebida”
antecipadamente para ser inserida no sistema e ser refeita a troca de motorista
de modo a atingir os objetivos.
Agradecendo ao Prof. Rui, vamos seguir
daqui ...
Falamos que a resposta estava no
enunciado da pergunta, então vamos lá:
Como construir um Machine Learning com
os recursos disponíveis e acessíveis que dê um passo além, que nos permita
alocar motoristas à caminhões, de modo a minimizar o custo e obedecer a
legislação vigente, preservando a segurança da operação?
Resposta: Utilização de Pesquisa
Operacional
Veja que temos a função Objetivo:
·
Minimizar o Custo de M.O (incluindo salários
dos motoristas, diárias e hospedagem)
E temos as restrições:
·
Atender a legislação vigente
·
Cumprir os requisitos de segurança
·
Atender os prazos de coleta e entrega
·
Atender a demanda de viagens
Eu prometi que a resposta era simples
e estava no anunciado, mas não me cobre que é fácil; estamos falando de um “algoritmo
para solução de alocação dinâmica”.
Mas para que você não desista, aqui
vão as boas notícias:
1. Abundam
Profissionais e Pesquisadores capazes de modelar o algoritmo e aplicar as
técnicas para solucioná-los (por exemplo no CILIP tem).
2. Os
profissionais de logísticas conhecem com profundidade as peculiaridades do
problema real, sendo capazes de suportar as pessoas que vão resolve-los,
fornecendo os elementos da função objetivo e das restrições
3. Os
elementos de ITS (abordados neste texto) são suficientes e efetivos para
fornecer os dados necessários para a resolução do problema
4. A Torre de
Controle pode incorporar o algoritmo e os profissionais que o resolveram podem
sistematiza-los de forma a transformá-lo em um executável e ‘rodá-lo’
diariamente, se necessário.
5. A Torre
então coordena a operação, integra os elementos de ITS, gera os dados, alimenta
o BI, que alimenta o algoritmo de PO, que nos permite executar a solução ótima
de alocação de motoristas à frota.
6. No dia
seguinte, os dados da operação melhorada geram novos inputs para o executável
do algoritmo que nos dá uma solução de alocação ainda melhor e mais aderente à
operação.
CQD |
Que nosso 2021 seja com saúde, e sendo
nós os primeiros e mais perfeitos Machines Learning, tenhamos aprendido com o
difícil ano que passou, e as decisões que vamos tomar a cada dia do novo ano
Um abraço, e um obrigado ao Improvável Leitor
Douglas
Obrigado ao
meu grande Amigo Marcius Braga pelo desafio, espero não tê-lo decepcionado
Fontes:
1.
O Problema da Alocação de Motoristas.
Prof. Dr. Rui Botter. CILIP Escola Politécnica da USP, 2020
2.
A Review of Machine Learning and IoT in Smart Transportation. Fotios
Zantalis, Grigorios Koulouras, Sotiris Karabetsos, Dionisis Kandris. MDPI, 2019
Hola Douglas.
ResponderExcluirInteresantisimo articulo de machine learning.
Claramente un must - have que debiesemos contemplar al analizar operaciones logisticas.
Hoy en dia aplicando tecnicas de ML, podemos anticiparnos y ser proactivos a nuestros clientes, no solo por una cuestion de costos, sino que tambien enfocandose hacia una excelencia operativa.
Esto implica un gran desafio de implementacion ya que deben estar bien identificados los datos stream y la complementacion de herramientas como IoT, TMS con sus algoritmos de ruteo y BigData.
Comparto contigo una bibliografia que ha sumado muchisimo en esta tendencia. Introduction to Machine Learning with Python de Andreas C. Muller.
Te dejo un abrazo.
Sergio