9 #ifndef GTL_RATIO_CUT_PARTITION_H
10 #define GTL_RATIO_CUT_PARTITION_H
131 const node target_node);
214 void store_cut_edges(
const bool set);
227 void store_nodesAB(
const bool set);
280 double get_cutratio();
310 int get_weight_on_sideA(
const graph& G)
const;
319 int get_weight_on_sideB(
const graph& G)
const;
395 virtual void reset();
646 void divide_up(
const graph& G);
654 void make_connected(
graph& G, list<edge>& artificial_edges);
661 void restore(
graph& G, list<edge>& artificial_edges);
667 void initialization(
const graph& G);
673 void init_data_structure(
const graph& G);
680 void init_filling_buckets(
const graph& G);
687 int inital_gain_of_node_on_sideA(
const node cur_node);
694 int inital_gain_of_node_on_sideB(
const node cur_node);
700 void init_variables(
const graph& G);
706 void compute_max_vertex_degree(
const graph& G);
712 void determine_source_node(
const graph& G);
718 void compute_target_node(
const graph& G);
725 void right_shift_op(
const graph& G);
732 void left_shift_op(
const graph& G);
741 bool move_vertex_A2B(
const graph& G,
node& moved_node);
749 bool move_vertex_B2A(
const graph& G,
node& moved_node);
755 node compute_highest_ratio_node(list<node> node_list);
772 double ratio_of_node_A2B(
const node cur_node);
780 double ratio_of_node_B2A(
const node cur_node);
787 inline int range_up(
const int gain_value)
const;
794 inline int range_down(
const int index)
const;
801 void update_data_structure_A2B(
const node cur_node,
802 const bool init_mode);
809 void update_data_structure_B2A(
const node cur_node,
810 const bool init_mode);
817 void update_bucketA(
const node cur_node,
const int old_gain,
818 const int new_gain,
const bool init_mode);
825 void update_bucketB(
const node cur_node,
const int old_gain,
826 const int new_gain,
const bool init_mode);
833 void update_max_gain(
const side_type side);
839 void clean_step(
const graph& G);
852 void iterative_shifting(
const graph& G);
858 void group_swapping(
const graph& G);
866 bool move_manager(
const graph& G);
874 bool move_vertex(
const graph& G,
node& moved_node);
880 void compute_cut_edges(
const graph& G);
886 void compute_nodesAB(
const graph& G);
893 void print_bucketA();
899 void print_bucketB();
905 #endif // GTL_RATIO_CUT_PARTITION_H