Giter VIP home page Giter VIP logo

k-shortest-paths's Introduction

k-shortest-paths

Implementação em C++ do algoritmo proposto por Martins e Pascoal (2003)[1] para obtenção dos k-caminhos mais curtos entre um par origem-destino Adaptado a partir da implementação disponível em https://github.com/yan-qi/k-shortest-paths-cpp-version

As adaptações feitas permitem que seja analisado mais de um par OD de cada vez. Por preferência pessoal, também alterei o programa para funcionar a partir de um executável que lê um arquivo de entrada e gera um arquivo de saída para processamento posterior por outros programas.

Um problema conhecido e que está sendo analisado é que o programa apresenta um memory leak, que pode tornar inviável as análises de problemas muito grandes.

A pasta 'others' contém os programas desenvolvidos por mim para meu Projeto Final de Graduação, para utilização nas etapas anteriores e posteriores à obtenção dos k-caminhos. O Projeto utilizou estes programas para aplicar o modelo proposto por Markovic et al. (2015)[2] para o Problema de Captura de Fluxo Evasivo (PCFE - Evasive Flow-Capturing Problem).

1 - GetLinks: recebe os dados do TransCAD e a lista com todas as vias da rede e gera a instância de entrada para o YenKfFull

2 - CplexOut: recebe o arquivo de saída do YenKfFull e a instância de entrada e gera o modelo expandido do PCFE para otimização no CPLEX.

3 - Facility Links: a partir dos nós de origem e destino monitorados na solução ótima, definidos pelo CPLEX e da lista com todas as vias da rede, gera uma lista com o ID das vias monitoradas para visualização no TransCAD.

[1] MARTINS, E. Q. V., PASCOAL, M. M. B, 2003, A new implementation of Yen’s ranking loopless paths algorithm, Quarterly Journal of the Belgian, French and Italian Operations Research Societies, vol 1(2), p. 121-133.

[2]MARKOVIĆ, N., RYZHOV, I. O., SCHONFELD, P., 2015, Evasive Flow Capture: Optimal location of Weigh-in-Motion Systems, Tollbooths, and Security Checkpoints, Networks, vol. 65(1), p. 22-44.

k-shortest-paths's People

Contributors

lucasramos7 avatar

Stargazers

Lucas Amorim avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.