Line data Source code
1 : #pragma once 2 : 3 : #include <string> 4 : #include <unordered_map> 5 : #include <vector> 6 : 7 : #include "Alg/Graph.hpp" 8 : #include "Static/supply/Network.hpp" 9 : 10 : namespace Static { 11 : class Solution; 12 : 13 : class SUMOAdapter; 14 : 15 6 : class NetworkDifferentiable: public Network { 16 : public: 17 : struct Edge: public Network::Edge { 18 : protected: 19 : Edge(Edge::ID id, Node u, Node v); 20 : 21 : public: 22 : virtual Time calculateCostDerivative(const Solution &x) const = 0; 23 : }; 24 : virtual Edge &getEdge(Edge::ID e) const = 0; 25 : }; 26 : 27 : } // namespace Static