data/32-ec-1277190372.sn: 32-input SN found with evolution-cut.
[sort-networks.git] / src / sn-evolution2.c
index 907c05f..c18c30d 100644 (file)
@@ -1,6 +1,6 @@
 /**
- * collectd - src/sn-evolution.c
- * Copyright (C) 2008,2009  Florian octo Forster
+ * libsortnetwork - src/sn-evolution.c
+ * Copyright (C) 2008-2010  Florian octo Forster
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the
@@ -16,7 +16,7 @@
  * 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  *
  * Authors:
- *   Florian octo Forster <octo at verplant.org>
+ *   Florian octo Forster <ff at octo.it>
  **/
 
 #ifndef _ISOC99_SOURCE
@@ -72,6 +72,10 @@ static int evolution_threads_num = 4;
 
 static int do_loop = 0;
 
+static int weight_overall = 50;
+static int weight_fails = 2;
+static int weight_stages = 1;
+
 static void sigint_handler (int signal)
 {
   do_loop++;
@@ -247,7 +251,7 @@ static int rate_network (sn_network_t *n) /* {{{ */
   } /* while (42) */
 
   /* All tests successfull */
-  return (SN_NETWORK_STAGE_NUM (n) + patterns_failed);
+  return (weight_overall + (weight_stages * SN_NETWORK_STAGE_NUM (n)) + (weight_fails * patterns_failed));
 } /* }}} int rate_network */
 
 static sn_comparator_t get_random_comparator (void) /* {{{ */
@@ -456,7 +460,7 @@ static int evolution_start (int threads_num)
       printf ("Best after approximately %i iterations: "
          "%i comparators in %i stages. Rating: %i (%i not sorted).\n",
          iter, comparators_num, stages_num, rating,
-         rating - stages_num);
+         (rating - (weight_overall + (weight_stages * stages_num))) / weight_fails);
     }
   }