# Lines beginning with # are comments.
# Format: PARAMETER=VALUE, with no spaces
# Default values for each paramter are in parentheses.


##############################################################################
# This group of paramters relates to pruning.

## PR_USE_PRUNING (true) - when this is false, the pruning process is skipped
## entirely. The program will perform only hashing and random walks. This is
## very likely to be very very slow.
PR_USE_PRUNING=true

## PR_USE_GROUPS (true) - determines if the program attempts to prune interval
## groups or if it will only prune single intervals.
PR_USE_GROUPS=true

## PR_ONLY_PRUNING (false) - when this is true, the program terminates after
## pruning. This is useful to test how well pruning is working without waiting
## for the hashing and random walks to finish.
PR_ONLY_PRUNING=false

## PR_COMPUTE_ALL_EIGS (false) - when this is true, the program will not use
## the composite pruning process instead, it will directly compute the second
## eigenvalue of the adjacency matrix for EVERY possible time interval, which
## is O(T^2). In the paper, this is referred to as PRUNE_FULL.
PR_COMPUTE_ALL_EIGS=false

## PR_ESTIMATE (0.016) - The conductance estimate used for pruning if one is
## not calculated. This requires having an idea about how good some solution
## (not necessarily the optimal) is. The closer the estimate is to optimal,
## the better pruning will work. The default value works well for our
## synthetic data - other values are provided for the other datasets.
PR_ESTIMATE=0.016
### for Milan
#PR_ESTIMATE=0.0016
### for road traffic
#PR_ESTIMATE=0.00133
### for net traffic
#PR_ESTIMATE=0.000275


## PR_CALC_ESTIMATE (false) - When false, pruning uses the PR_ESTIMATE
## parameter. When true, the program attempts to calculate its own estimate
## before pruning.
PR_CALC_ESTIMATE=false

## PR_ESTIMATION_INTERVALS (10) - If PR_CALC_ESTIMATE is true, after
## computing an initial estimate using spectral bounds, the program will try
## to find an actual solution with a lower conductance. This parameter
## controls how many of the most promising intervals it will search in. If set
## to 0, only the spectral estimate will be used. If PR_CALC_ESTIMATE is
## false, this parameter is ignored.
PR_ESTIMATION_INTERVALS=10

## PR_ESTIMATION_HASH_TRIES (20) - If PR_CALC_ESTIMATE is true, after
## computing an initial estimate using spectral bounds, the program will try
## to find an actual solution with a lower conductance. This parameter
## controls how long it spends within each interval trying to find such a
## solution. If set to 0, only the spectral estimate will be used. If
## PR_CALC_ESTIMATE is false, this parameter is ignored.
PR_ESTIMATION_HASH_TRIES=20


##############################################################################
# This group of paramters relates to the hashing of temporal neighborhoods.

## HASH_ROWS_PER_BAND (2) - The number of times each neighborhood is minhashed
## to generate a signature. Increasing this value decreases the overall number
## of hashing collisions.
HASH_ROWS_PER_BAND=2

## HASH_BANDS (1) - The number of signatures generated. Increasing this raises
## the probability of hash collisions. 
HASH_BANDS=1

## HASH_USE_LOG_SCALES (true) - When true, temporal hashing will only target a
## few of the possible interval lengths: 1, m, m^2, m^3, etc. up to the
## timeline length, where m is the value of HASH_LOG_SCALE_MULTIPLIER. When
## false, all possible interval lengths from are considered. (This can be much
## slower, but more accurate.)
HASH_USE_LOG_SCALES=true

## HASH_LOG_SCALE_MULTIPLIER (5) - See HASH_USE_LOG_SCALES for details.
## Ignored if HASH_USE_LOG_SCALES is false. 
HASH_LOG_SCALE_MULTIPLIER=5
	
##############################################################################
# This group of parameters relates to the expansion of potential solutions
# using random walks.

## RW_USE_TEMPORAL_RW (false) - When true, the program uses a modified version
## of random walk that includes steps in time as well as along the graph
## topology. When false, the program simply aggregates the graph over the
## desired interval and performs a normal random walk there.
RW_USE_TEMPORAL_RW=false

## RW_ALPHA (0.15) - The probability of restarting at a seed node during each
## step in a random walk.
RW_ALPHA=0.15

## RW_BETA (0.25) - In a temporal RW, the probability of taking a step
## forward or backward in time at the current graph location. Ignored when
## RW_USE_TEMPORAL_RW is false.
RW_BETA=0.25

## RW_BINS_TO_EXAMINE (20) - The number of hash collisions for which RW will
## be performed. Higher numbers will take more time, but raise the likelihood
## of finding the optimal solution.
RW_BINS_TO_EXAMINE=20


##############################################################################
# Miscellaneous parameters

## GROUPS_TO_REPORT (10) - The program will report this many potential
## solutions in order from best to worst.
GROUPS_TO_REPORT=10

## DETAILED_TIMING (true) - Causes the program to generate output stating the
## length of time each phase of the program takes.
DETAILED_TIMING=true

## ONE_BASED_TIMELINE (false) - Use only if the timeline of the input graph 
## begins at T=1 instead of T=0. This will cause the program to subtract one
## from each time value while importing the file, so that results will be
## offset from the original timeline by one.
ONE_BASED_TIMELINE=false

## PROMPT_FOR_FILENAME (true) - Controls if the program prompts the user for
## a filename or uses the one specified here. In either case, if there is a
## command-line argument provided, that is the file that will be used.
PROMPT_FOR_FILENAME=false

## INPUT_FILENAME - The file that will be read if PROMPT_FOR_FILENAME is
## false. If command-line arguments are provided, those files will be read
## instead of this one.
INPUT_FILENAME=synthV1000T100.txt
