forked from bertdobbelaere/SorterHunter
-
Notifications
You must be signed in to change notification settings - Fork 0
/
sample_config.txt
65 lines (51 loc) · 4.07 KB
/
sample_config.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Sample config file for SorterHunter program
# Note: keys are case sensitive.
# Number of inputs to the sorting network (no default)
Ninputs=48
# Assume symmetric network (=1) or not (=0)
# Symmetric networks allow faster searches and give with few exceptions the best results for even values of Ninputs.
Symmetric=1
# Random seed. Set to value different from 0 to create reproducible results or omit for "practically undeterministic" random to improve chances over multiple runs
#RandomSeed=123
# Inverse probability of pair addition per iteration ("uphill step"). Default: no additions.
EscapeRate=1000
# Forcing the uphill step (see EscapeRate) not to break a valid sorter. When set to >0, an inserted pair that would affect the sorting result will be changed into a duplicate of the next pair.
# This gives empirically slightly better results than earlier version that didn't support this option. Default is 1.
#ForceValidUphillStep = 1
# Maximum number of mutations per iteration. Default 1.
MaxMutations = 2
# Relative probabilities of mutation types (integer >=0). Not all must be 0. Don't use huge values (total<10000 is no issue), as a table is allocated for the probability distribution
WeigthRemovePair = 1 # Remove a random pair
WeigthSwapPairs = 1 # Swap two random pairs
WeigthReplacePair = 0 # Replace random pair with another pair
WeightCrossPairs = 1 # Cross two pairs at random positions
WeightSwapIntersectingPairs = 2 # Swap pairs in neighbouring layers sharing a connection
WeightReplaceHalfPair = 1 # Replace one of the two connections of a random pair
# Prefix type
# 0 = None (default)
# 1 = Fixed - Prefix pairs from FixedPrefix value will be used
# 2 = GreedyA - Greedy algorithm A: per pair minimisation of remaining pattern set size, randomized every restart when ex aequo.
# 3 = Hybrid prefix, first fixed part, then GreedyA part
PrefixType = 2
# Size of greedy prefix
# Only relevant if PrefixType = 2 or 3
GreedyPrefixSize = 10
# Specify fixed prefix as comma separated list of pairs. Inputs are 0 based.
# Only relevant if PrefixType = 1 or 3
FixedPrefix=(0,1),(2,3),(4,5),(6,7),(8,9),(10,11),(12,13),(14,15),(16,17),(18,19),(0,2),(1,3),(4,6),(5,7),(8,10),(9,11),(12,14),(13,15),(16,18),(17,19)
# Postfix network to finish the sorter. One application is to search for median detecting networks.
# e.g. to find a network just outputing the median of Ninputs=7 inputs, define postfix (0,1),(1,2),(0,1),(4,5),(5,6),(4,5), then find a sorter and just strip the postfix afterwards.
#Postfix=(4,5),(14,15)
# Specify initial network (after prefix, if applicable) as comma separated list of pairs. Inputs are 0 based.
# Pairs containing input indices >= Ninputs will be silently removed (allows reduction of larger known good networks)
# Note that if Symmetric=1 the pairs in InitialNetwork will be subject to mirroring and duplication.
# This feature can be used to try to improve an existing network. Default: empty.
#InitialNetwork=(4,17),(6,19),(15,22),(1,8),(14,16),(7,9),(7,14),(9,16),(0,2),(21,23),(10,11),(12,13),(1,15),(8,22),(13,17),(6,10),(11,19),(4,12),(9,15),(8,14),(14,15),(8,9),(3,18),(5,20),(20,23),(0,3),(1,7),(16,22),(2,18),(5,21),(2,13),(10,21),(11,20),(3,12),(12,21),(2,11),(17,18),(5,6),(3,6),(17,20),(0,4),(19,23),(18,23),(0,5),(1,5),(18,22),(14,20),(3,9),(15,21),(2,8),(0,1),(22,23),(9,11),(12,14),(3,5),(18,20),(6,7),(16,17),(13,19),(4,10),(8,10),(13,15),(17,19),(4,6),(8,9),(14,15),(12,16),(7,11),(1,3),(20,22),(10,18),(5,13),(11,17),(6,12),(2,4),(19,21),(7,13),(10,16),(6,8),(15,17),(9,12),(11,14),(19,20),(3,4),(21,22),(1,2),(2,3),(20,21),(7,10),(13,16),(14,16),(7,9),(18,19),(4,5),(15,18),(5,8),(17,19),(4,6),(19,20),(3,4),(11,13),(10,12),(12,15),(8,11),(5,7),(16,18),(13,14),(9,10),(14,15),(8,9),(10,11),(12,13),(13,14),(9,10),(16,17),(6,7),(11,12),(7,8),(15,16),(5,6),(17,18)
# Inverse probablity per iteration to start over. This is one of the strategies to escape a local minimum. Default: no restart
#RestartRate = 10000000
# Modify overall verbosity level:
# 0:minimal
# 1:moderate (default)
# 2:high
# >2:debug
#Verbosity=2