for(std::pair<std::pair<Node<N,E>*,N>, double> w : data.first){
auto search_result = node_variable_lookup.find(w.first);
if(search_result == node_variable_lookup.end()) throw std::range_error("lp_generator::lhs_from_data use of undeclared variable in constraint generation! (node)");
for(std::pair<std::pair<Edge<N,E>*,E>, double> w : data.second){
auto search_result = edge_variable_lookup.find(w.first);
if(search_result == edge_variable_lookup.end()) throw std::range_error("lp_generator::lhs_from_data use of undeclared variable in constraint generation! (edge)");