FCT Entregas

Bruno Ribas, Arthur Grandão

Apresentação

A FCT Entregas é uma pequena empresa de logística recém-chegada à movimentada cidade de NP-Completópolis. Apesar do entusiasmo e da dedicação de seus fundadores, a empresa enfrenta sérias dificuldades para se destacar no mercado local.

A concorrência é intensa, os clientes ainda são poucos, e a organização das rotas de entrega tem se mostrado ineficiente. Com isso, os recursos disponíveis não estão sendo aproveitados da melhor maneira.

Buscando mudar esse cenário, a FCT Entregas decidiu recorrer à sua equipe especializada em otimização de rotas e soluções logísticas. O desafio é claro: transformar o sistema de entregas da empresa em uma operação eficiente, confiável e capaz de conquistar novos clientes em NP-Completópolis.

O mapa da cidade está repleto de pontos de interesse, que representam desde locais de coleta e entrega de pedidos até potenciais clientes. A missão é criar rotas otimizadas para cada entregador, garantindo que:

Com essas diretrizes, espera-se que a nova estratégia logística proporcione à FCT Entregas uma vantagem competitiva em NP-Completópolis.

Descrição do problema

Você deve desenvolver um programa que leia a especificação do desafio, via stdin, obtenha o plano para a conclusão do mapa lido, e gere uma saída, via stdout, no formato especificado na descrição do trabalho. Caso não encontre um plano, encerre seu programa com um exit(120).

Dado:

Defina as rotas para EE entregadores, cada um com capacidade máxima LL, de modo a minimizar a soma total dos custos de viagem de cada entregador, respeitando as restrições mencionadas.

O custo de viagem CijC_{ij} entre dois pontos é dado por:

Cij=(xixj)2+(yiyj)2 C_{ij} = \lfloor \sqrt{(x_i - x_j)^2 + (y_i - y_j)^2} \rfloor

Ferramentas e auxiliares

Esta seção descreve as várias ferramentas auxiliares disponíveis para resolver o problema. As ferramentas estão organizadas em categorias: planejadores PDDL, planejadores HDDL, SAT-solvers e bibliotecas auxiliares. A localização e a forma de chamada de cada ferramenta estão descritas a seguir.

Planejadores PDDL

Para utilizar dos planejadores PDDL, você precisará de um modelo PDDL do problema, criar os arquivos de domínio e problema PDDL correspondentes, chamar o planejador selecionado com os parâmetros corretos. Aqui estão os planejadores PDDL disponíveis:

  1. Planejadores Madagascar (M, Mp, MpC):
  2. Fast Downward:
  3. Planejador em Julia:

Planejadores HDDL

Para utilizar dos planejadores HDDL, você precisará de um modelo HDDL do problema, crie os arquivos de domínio e problema HDDL correspondentes, chame o planejador selecionado com os parâmetros corretos. Aqui estão os planejadores HDDL disponíveis:

  1. Panda:
  2. PandaPI:

SAT-solvers

Para utilizar dos SAT-solvers, você precisará de uma formulação do problema em forma de CNF (Conjunctive Normal Form). Aqui estão os SAT-solvers disponíveis e como utilizá-los:

  1. Clasp:
  2. CryptoMiniSat:
  3. MiniSat:
  4. MiniSat+:
  5. PackUp:
  6. PicoSAT:
  7. SAT4J:
  8. Python-SAT:
  9. Z3

Como classificar nesta modalidade

Nesta modalidade de classificação, o problema é dividido em três categorias: AGILE, SATISFICING e OPTIMAL. A pontuação é computada da seguinte forma:

Entrada

  1. Primeira linha: quatro inteiros ee, nn, pp e qq:
  2. Próximas nn linhas: três inteiros zz, xx, yy:
  3. Próximas pp linhas: três inteiros ww, oo, dd:

Saída

Para cada entregador ee, imprimir:

  1. Número tt de pontos visitados;
  2. tt linhas com o identificador zz de cada ponto visitado, na ordem de visitação;
  3. Número ss de pedidos entregues;
  4. ss linhas com o identificador ww de cada pedido entregue;
  5. Um inteiro TT, o custo total da viagem.

Exemplo

Exemplo de entrada 1

2 8 2 2
0 150 30
1 400 200
2 200 10
3 48 100
4 150 170
5 42 320
6 200 30
7 400 420
1 1 2
2 5 4

Saída para o exemplo

5
3
7
5
4
0
1
2
1293
4
1
2
6
0
1
1
647
  1. Explicação para a saída do exemplo

    A saída acima representa as rotas, as entregas feitas e o custo da rota por entregador, neste caso:

Teste você mesmo

Visualizador FCT Entregas Avançado

Author: Ribas e Arthur Grandão