@@ -217,8 +217,7 @@ class EvenRegularGraphBuilder {
217217 const uint8_t improve_k_; // k value for improving the graph
218218 const float improve_eps_; // eps value for improving the graph
219219 const uint8_t max_path_length_; // max amount of changes before canceling an improvement try
220- const uint32_t swap_tries_; // number of improvement attempts per build step
221- const uint32_t additional_swap_tries_; // additional improvement attempts after a successful improvement
220+ const uint32_t improve_tries_; // number of improvement attempts per build step
222221
223222 std::mt19937& rnd_; // Reference to a random number generator used for randomized operations
224223 deglib::graph::MutableGraph& graph_; // Reference to the mutable graph being built and optimized
@@ -252,32 +251,29 @@ class EvenRegularGraphBuilder {
252251 * @param improve_k Number of neighbors to consider when improving the graph.
253252 * @param improve_eps Epsilon value for neighbor search during graph improvement.
254253 * @param max_path_length Maximum number of edge swaps in a single improvement attempt (default: 5).
255- * @param swap_tries Number of improvement attempts per build step (default: 0).
256- * @param additional_swap_tries Additional improvement attempts after a successful improvement (default: 0).
254+ * @param improve_tries Number of improvement attempts per build step (default: 0).
257255 *
258256 * This constructor initializes the builder with the provided parameters and sets up internal
259257 * batching and threading parameters for efficient graph construction and optimization.
260258 */
261259 EvenRegularGraphBuilder (
262260 deglib::graph::MutableGraph& graph,
263261 std::mt19937& rnd,
264- const OptimizationTarget optimization_target,
265- const uint8_t extend_k,
266- const float extend_eps,
267- const uint8_t improve_k,
268- const float improve_eps,
262+ const OptimizationTarget optimization_target = OptimizationTarget::LowLID ,
263+ const uint8_t extend_k = 0 ,
264+ const float extend_eps = 0 . 1f ,
265+ const uint8_t improve_k = 0 ,
266+ const float improve_eps = 0 . 001f ,
269267 const uint8_t max_path_length = 5 ,
270- const uint32_t swap_tries = 0 ,
271- const uint32_t additional_swap_tries = 0
268+ const uint32_t improve_tries = 0
272269 )
273270 : optimizationTarget_(optimization_target),
274271 extend_k_ (extend_k),
275272 extend_eps_(extend_eps),
276273 improve_k_(improve_k),
277274 improve_eps_(improve_eps),
278275 max_path_length_(max_path_length),
279- swap_tries_(swap_tries),
280- additional_swap_tries_(additional_swap_tries),
276+ improve_tries_(improve_tries),
281277 rnd_(rnd),
282278 graph_(graph),
283279 build_status_() {
@@ -286,29 +282,6 @@ class EvenRegularGraphBuilder {
286282 extend_batch_size = extend_thread_count * extend_thread_task_count * extend_thread_task_size;
287283 }
288284
289- /* *
290- * @brief Constructs an EvenRegularGraphBuilder with default parameters for streaming data.
291- *
292- * @param graph Reference to a MutableGraph object to be built and optimized.
293- * @param rnd Reference to a random number generator (std::mt19937) used for randomized operations.
294- * @param swaps Number of improvement attempts per build step (used for both swap_tries and additional_swap_tries).
295- *
296- * This constructor is a convenience overload for quickly creating a builder for streaming data
297- * with default extension and improvement parameters.
298- */
299- EvenRegularGraphBuilder (deglib::graph::MutableGraph& graph, std::mt19937& rnd, const uint32_t swaps)
300- : EvenRegularGraphBuilder(graph, rnd, OptimizationTarget::StreamingData, graph.getEdgesPerVertex(), 0.1f, 0, 0.0f, 5, swaps, swaps) {}
301-
302- /* *
303- * @brief Constructs an EvenRegularGraphBuilder with default parameters and a single swap attempt.
304- *
305- * @param graph Reference to a MutableGraph object to be built and optimized.
306- * @param rnd Reference to a random number generator (std::mt19937) used for randomized operations.
307- *
308- * This constructor is a convenience overload for quickly creating a builder with minimal configuration.
309- */
310- EvenRegularGraphBuilder (deglib::graph::MutableGraph& graph, std::mt19937& rnd) : EvenRegularGraphBuilder(graph, rnd, 1 ) {}
311-
312285 /* *
313286 * @brief Constructs an EvenRegularGraphBuilder wrapping a DynamicExplorationGraph facade.
314287 *
@@ -317,14 +290,13 @@ class EvenRegularGraphBuilder {
317290 EvenRegularGraphBuilder (
318291 deglib::DynamicExplorationGraph& graph,
319292 std::mt19937& rnd,
320- const OptimizationTarget optimization_target,
321- const uint8_t extend_k,
322- const float extend_eps,
323- const uint8_t improve_k,
324- const float improve_eps,
293+ const OptimizationTarget optimization_target = OptimizationTarget::LowLID ,
294+ const uint8_t extend_k = 0 ,
295+ const float extend_eps = 0 . 1f ,
296+ const uint8_t improve_k = 0 ,
297+ const float improve_eps = 0 . 001f ,
325298 const uint8_t max_path_length = 5 ,
326- const uint32_t swap_tries = 0 ,
327- const uint32_t additional_swap_tries = 0
299+ const uint32_t improve_tries = 0
328300 )
329301 : EvenRegularGraphBuilder(
330302 check_and_get_mutable_graph (graph),
@@ -335,21 +307,9 @@ class EvenRegularGraphBuilder {
335307 improve_k,
336308 improve_eps,
337309 max_path_length,
338- swap_tries,
339- additional_swap_tries
310+ improve_tries
340311 ) {}
341312
342- /* *
343- * @brief Constructs an EvenRegularGraphBuilder wrapping a DynamicExplorationGraph with default parameters for streaming data.
344- */
345- EvenRegularGraphBuilder (deglib::DynamicExplorationGraph& graph, std::mt19937& rnd, const uint32_t swaps)
346- : EvenRegularGraphBuilder(check_and_get_mutable_graph(graph), rnd, swaps) {}
347-
348- /* *
349- * @brief Constructs an EvenRegularGraphBuilder wrapping a DynamicExplorationGraph with default parameters and a single swap attempt.
350- */
351- EvenRegularGraphBuilder (deglib::DynamicExplorationGraph& graph, std::mt19937& rnd) : EvenRegularGraphBuilder(check_and_get_mutable_graph(graph), rnd, 1) {}
352-
353313 private:
354314 static deglib::graph::MutableGraph& check_and_get_mutable_graph (deglib::DynamicExplorationGraph& graph) {
355315 if (!graph.isMutable ()) {
@@ -1494,12 +1454,11 @@ class EvenRegularGraphBuilder {
14941454
14951455 // try to improve the graph
14961456 if (graph_.size () > edge_per_vertex && improve_k_ > 0 ) {
1497- for (int64_t swap_try = 0 ; swap_try < int64_t ( this ->swap_tries_ ); swap_try ++) {
1457+ for (uint32_t try_idx = 0 ; try_idx < this ->improve_tries_ ; try_idx ++) {
14981458 this ->build_status_ .tries ++;
14991459
15001460 if (this ->improveEdges ()) {
15011461 this ->build_status_ .improved ++;
1502- swap_try -= this ->additional_swap_tries_ ;
15031462 }
15041463 }
15051464 }
@@ -1539,8 +1498,7 @@ class EvenRegularGraphBuilder {
15391498 * @param improve_k Number of neighbors to consider during improvement (default: 0).
15401499 * @param improve_eps Epsilon value for neighbor search during improvement (default: 0.001f).
15411500 * @param max_path_length Maximum number of edge swaps in a single improvement (default: 5).
1542- * @param swap_tries Number of improvement attempts per build step (default: 0).
1543- * @param additional_swap_tries Additional improvement attempts after successful improvement (default: 0).
1501+ * @param improve_tries Number of improvement attempts per build step (default: 0).
15441502 * @param thread_count Number of threads for construction (0 = single-threaded / default).
15451503 * @param seed Random seed for deterministic construction (default: 42).
15461504 * @param callback Optional progress callback invoked during build.
@@ -1559,8 +1517,7 @@ DynamicExplorationGraph build_from_data(
15591517 const uint8_t improve_k = 0 ,
15601518 const float improve_eps = 0 .001f ,
15611519 const uint8_t max_path_length = 5 ,
1562- const uint32_t swap_tries = 0 ,
1563- const uint32_t additional_swap_tries = 0 ,
1520+ const uint32_t improve_tries = 0 ,
15641521 const size_t thread_count = 0 ,
15651522 const uint32_t seed = 42 ,
15661523 std::function<void (deglib::builder::BuilderStatus&)> callback = nullptr
@@ -1582,7 +1539,7 @@ DynamicExplorationGraph build_from_data(
15821539
15831540 std::mt19937 rng (seed);
15841541 auto builder = EvenRegularGraphBuilder (
1585- graph, rng, optimization_target, extend_k, extend_eps, improve_k, improve_eps, max_path_length, swap_tries, additional_swap_tries
1542+ graph, rng, optimization_target, extend_k, extend_eps, improve_k, improve_eps, max_path_length, improve_tries
15861543 );
15871544
15881545 if (thread_count > 0 ) {
0 commit comments