3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-29 11:55:51 +00:00

Update interface of network flows

This commit is contained in:
Anh-Dung Phan 2013-11-07 15:56:53 -08:00
parent 759d80dfe3
commit ab4efe2da0
5 changed files with 360 additions and 407 deletions

View file

@ -51,7 +51,7 @@ namespace smt {
typedef typename Ext::fin_numeral fin_numeral;
graph m_graph;
thread_spanning_tree<Ext> tree;
spanning_tree_base m_tree;
// Denote supply/demand b_i on node i
vector<fin_numeral> m_balances;
@ -66,17 +66,13 @@ namespace smt {
unsigned m_step;
edge_id m_entering_edge;
edge_id m_leaving_edge;
node m_join_node;
edge_id m_enter_id, m_leave_id;
optional<numeral> m_delta;
bool m_in_edge_dir;
bool m_is_swap_enter, m_is_swap_leave;
// Initialize the network with a feasible spanning tree
void initialize();
edge_id get_edge_id(dl_var source, dl_var target) const;
void update_potentials();
void update_flows();
@ -94,7 +90,6 @@ namespace smt {
std::string display_spanning_tree();
bool edge_in_tree(edge_id id) const;
bool edge_in_tree(node src, node dst) const;
bool check_well_formed();
bool check_optimal();