cassoli2016

programacao-cargas

Aloca cargas a veículos/motoristas disponíveis respeitando janelas, jornada (Lei 13.103) e tipo de carga; minimiza ociosidade e retorno vazio; aponta gargalos. Use para montar e otimizar a programação operacional.

cassoli2016 0 Updated 3mo ago
GitHub

Install

npx skillscat add cassoli2016/cortex-sulista/programacao-cargas

Install via the SkillsCat registry.

SKILL.md

Skill: Programação de Cargas

Encaixa carga → veículo → motorista com restrições e objetivo de eficiência.

Restrições (hard)

  • Janela: coleta/entrega da carga ⊆ disponibilidade do veículo.
  • Jornada: motorista não pode estourar limites da Lei 13.103 na rota (checar skill jornada-motorista).
  • Compatibilidade: tipo de carga × tipo de veículo (baú, graneleiro, frigorífico...).

Objetivo (soft, minimizar)

  • Ociosidade de frota e retorno vazio (casar carga de volta na mesma região).

Heurística de alocação (greedy + casamento de retorno)

def alocar(cargas: list[dict], veiculos: list[dict]) -> dict:
    cargas = sorted(cargas, key=lambda c: c["janela_coleta"])
    alocacoes, sem_veiculo = [], []
    for c in cargas:
        cand = [v for v in veiculos
                if v["disponivel"]
                and compativel(v["tipo"], c["tipo_carga"])
                and cabe_na_janela(v, c)
                and jornada_ok(v["motorista"], c["rota"])]
        if not cand:
            sem_veiculo.append(c); continue
        # prioriza veículo que reduz retorno vazio (já está perto da origem)
        v = min(cand, key=lambda v: dist(v["pos_atual"], c["origem"]))
        alocacoes.append({"carga": c["id"], "veiculo": v["id"]})
        v["disponivel"] = False
    ociosos = [v["id"] for v in veiculos if v["disponivel"]]
    return {"alocacoes": alocacoes, "sem_veiculo": [c["id"] for c in sem_veiculo],
            "veiculos_ociosos": ociosos}

Saída acionável

  • Cargas sem veículo (precisa agregado? -> skill make-vs-buy).
  • Veículos ociosos (buscar carga de retorno).
  • Conflitos de janela a resolver.

Fontes

prog_cargas, prog_alocacao, prog_disponibilidade, fro_veiculos, jor_jornadas, op_rotas.

Categories