sergey-kotov-architect / allocation

Information system of graph, actors, allocations of actors on the graph, generates an optimal allocation, evaluates its metrics, finds shortest path for an actor from one vertex to another

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Information system of graph, actors, allocations of actors on the graph, generates an optimal allocation, evaluates its metrics, finds shortest path for an actor from one vertex to another

Functions

  • generate an optimal allocation of actors on the graph
  • evaluate metrics of the allocation
  • find shortest path for an actor from one vertex to another
  • extract active allocations
  • extract all, by id, create, update, delete by id actors, vertices, edges, allocations
  • provide REST API for the functions

Optimisation

Optimisation consists of two phases: evaluate vertex rank for actor based on Dijkstra algorithm to find shortest path using function of speed, speed limit, distance and vertex rank, create stable matches using Gale-Shapley algorithm to solve stable marriage/matching problem between actors and vertices according to their mutual ranks

OptimisationService

Database

database diagram
SQLite database schema

Technologies and tools

  • Java 8
  • Spring framework (Boot, Web/MVC, Test, Actuator, slf4j/logback)
  • Spring Data and JDBC with Apache DBCP (in different branches)
  • SQLite
  • Maven
  • Git
  • IntelliJ IDEA
  • Insomnia REST Client
  • Java Visual VM (profiler)

About

Information system of graph, actors, allocations of actors on the graph, generates an optimal allocation, evaluates its metrics, finds shortest path for an actor from one vertex to another


Languages

Language:Java 97.9%Language:TSQL 2.1%