⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme

📁 生成直角Steiner树的程序包
💻
📖 第 1 页 / 共 3 页
字号:
		@RC	Experimental output from -R switch.		@UO		@UN	This pair of messages is emitted every time the			upper bound gets tighter.  They contain the CPU			time and the old/new bound, as well as the			old/new gap percentages.  These can be plotted			(i.e., using gnuplot) to graphically show the			convergence rate of the algorithm.prunefst	- Reduce the set of FSTs generated by "rfst" or "efst" while	  still retaining at least one optimal solution among the	  remaining set of FSTs.  This program can reduce the time to	  solve the FST concatenation problem considerably, but is	  only worthwhile for large instances.  The following options	  are permitted:		-d txt	Description of problem instance.		-f E	Epsilon multiplication factor for floating			point comparisons.  Default is 32.		-t	Print detailed timings to stderr.dumpfst	- Dumps information about the FSTs generated by "rfst" and	  "efst" in a readable form.  There are two forms of this	  command, each producing different types of output.  The first	  form of the command is obtained whenever the -d or -h switches	  are used.  These switches provide summary information ONLY --	  FST statistics, and/or a histogram of FST sizes:		dumpfst [-d | -h [-a]] <FSTs	  where the switches		-d	Display statistics about FSTs.		-h	Display histogram of FST sizes.		-a	Include all FSTs in histogram, even those that			were "pruned" by the FST generator or a pruning			algorithm.	  The second form of the command is obtained when neither -d nor	  -h are specified.  This form dumps all of the FSTs in a	  readable form.  Each line of output represents a single FST,	  listing its terminal numbers (0 through N-1).  The terminals	  are listed in the same order that they occur in the actual	  data structures, although they can optionally be sorted in	  numeric order.  The length of each FST can optionally be	  appended to each line:		dumpfst [-als] <FSTs	  The command line switches are:		-a	Include all FSTs, even those that were "pruned"			by the FST generator or a pruning algorithm.		-l	Append the FST length to each output line.		-s	Terminals of each FST are listed in numeric			(sorted) order instead of internal order.plotfst	- Program to generate various plots of FSTs in an FST data	  file.  Reads the FST data file on stdin and produces	  postscript on stdout for the plots indicated by the command	  line switches:		-f	Prints all FSTs, 12 FSTs per page.		-g	Prints FSTs in "grouped" fashion, 12 groups per			page.		-o	Prints all FSTs overlaid together.		-p	Prints only the points, no FSTs.	  Note that the file "prelude.ps" must be PREPENDED to the	  output of this program in order to have a complete postscript	  document.fst2graph	- Reads FSTs from stdin and produces an (ordinary) graph	  on stdout representing the FSTs.  For the rectilinear	  problem, the FSTs are overlaid on the Hanan grid and the	  remaining Hanan grid is output.  For the Euclidean problem	  the set of all terminals and Steiner points in all FSTs	  forms the set of vertices and the line segments the edges.	  Output data is printed in OR-Library format by default, but	  the SteinLib format is also supported:		-d txt	Description of problem instance.		-s	Prints data in SteinLib format.		-e	Generate edge graph for the rectilinear problem.		-u	Output unscaled (fractional) data for the			rectilinear problem.kr	- Reads a point set from stdin.  It then computes a minimum	  spanning tree, and a heuristic Steiner tree using the	  1-Steiner heuristic of Kahng and Robins.  The plots go to	  stdout in "incomplete" postscript form.  Prepend the	  "prelude.ps" file to obtain a printable postscript file.  This	  implementation of 1-Steiner is substantially slower than	  Robins' own code.  The following switches are permitted:		-k	Skip the Kahng-Robins heuristic.		-l T	Set a CPU time limit of T, which may be			expressed for example as 1day4hours20min30sec,			1d4h20m30s, 10000s, 300m, etc.		-m	Skip the minimum spanning tree.Examples of Program Invocation==============================The following command will generate a set of 70 random points andcompute a rectilinear Steiner minimal tree for it:	rand_points 70 | rfst | bbThe following computes an ESMT for the same set of points:	rand_points 70 | efst | bbNote that rand_points always generates the same sequence of pointsunless given the `-r' or `-s seed' option.The following (Bourne shell) examples can be used to generate completeprintable postscript plots for these problems:	(cat prelude.ps; rand_points 70 | rfst | bb) >rsmt70.ps	(cat prelude.ps; rand_points 70 | efst | bb) >esmt70.psThe complete set of FSTs can also be plotted as follows:	(cat prelude.ps; rand_points 70 | rfst | plotfst -fgo) >rfsts.ps	(cat prelude.ps; rand_points 70 | efst | plotfst -fgo) >efsts.psA reduced Hanan grid in the OR-Library format (for the rectilinearproblem) can be generated as follows:	rand_points 70 | rfst | fst2graphBy pruning the set of FSTs an even more reduced grid graph can begenerated:	rand_points 70 | rfst | prunefst | fst2graphAn Euclidean Steiner minimal tree for the "berlin52.tsp" instance fromTSPLIB can be constructed and displayed as follows (assuming that thefile "berlin52.tsp" is present in your GeoSteiner directory):	(cat prelude.ps; cat berlin52.tsp | lib_points | efst | bb) | \		ghostview -Overview of the Source Code===========================The GeoSteiner source code resides entirely in the top-leveldirectory.  There is a single subdirectory "lp_solve_2.3" that containsthe source code for a *CUSTOMIZED* version of this public-domain LPsolver written by Michel Berkelaar and Jeroen Dirks.  For a descriptionof the changes we have made to this package, see the file:	lp_solve_2.3/README.customThe original unmodified distribution of lp_solve_2.3 can be obtainedfrom:	ftp://ftp.es.ele.tue.nl/pub/lp_solveDetailed description of each file in the GeoSteiner distribution:bb.c		(Branch-and-cut)	All of the gory details of the branch-and-cut algorithm.  The	various separation procedures are called from this file, but	are defined in other files.bb.h		(Branch-and-cut)	Data structures and function prototypes pertaining to the	branch-and-bound / branch-and-cut algorithm.bbmain.c	(Main program)	The main routine for the "bb" program.bbsubs.c	(Branch-and-cut)	Low-level subroutines of the branch-and-cut.bbsubs.h	(Branch-and-cut)	Declarations of low-level branch-and-cut routines.bmst.c		(FST generator, miscellaneous utility)	Routines to compute the MST of a subset of the terminals using	the bottleneck Steiner distance as the metric.bsd.c		(FST generator, miscellaneous utility)	Routines to compute the bottleneck Steiner distance between two	terminals.bsd.h		(FST generator, miscellaneous utility)	Data structures and function prototypes pertaining to the	bottleneck Steiner distance routines.btsearch.c      (FST pruning)	Routines to perform backtrack search for a solution.  Faster	than branch-and-cut for small instances.btsearch.h	(FST pruning)	Declarations for the special backtrack search used by the FST	pruning code.config.h	(General utility)	Created by running the ./configure script.  Defines various	constants and switches that control the configuration of	GeoSteiner 3.1.  This file is automatically generated from the	template file `config.h.in'.constrnt.c	(Branch-and-cut)	Routines that maintain the constraint pool and the constraints	currently in the LP tableaux.  Most of the details of	interfacing to a particular LP solver reside in this file.constrnt.h	(Branch-and-cut)	Data structures and function prototypes pertaining to	constraints and the constraint pool.cpulimit.c	(Utility)	Routines for monitoring and limiting CPU time usage by a	program.cputime.c	(Utility)	Routines for metering CPU time usage, and converting CPU times	into printable form.cra.c		(Utility)	Closest rational approximation routine.		(Utility)cra.h	Declaration of closest rational approximation routine.cutset.c	(Branch-and-cut)	The separation routines for finding violated cutset constraints	-- a fast one that identifies cutsets of zero weight (connected	components), and another for finding fractional weight cutsets.cutset.h	(Branch-and-cut)	Data structures and function prototypes pertaining to the cutset	separation algorithms.cutsubs.c	(Branch-and-cut)	Subroutines for processing of violated cutset constraints.dsuf.c		(Utility)	A general disjoint-set union-find data structure.dsuf.h		(Utility)	Data structures and function prototypes pertaining to the	disjoint-set union-find routines.dumpfst.c	(Main program)	Main routine for a utility program to dump FSTs in a meaningful	format.efst.c		(Main program)	Main routine for the Euclidean FST generator.  The bulk of the	EFST generation algorithm resides in this file.efst.h		(Euclidean FST generator)	Data structures and function prototypes pertaining to the	Euclidean FST generator.efuncs.h	(Euclidean FST generator)	Basic plane geometry functions used by Euclidean FST generator        and pruning algorithms.egmp.c		(Euclidean FST generator)	Support routines for the EFST generator that use the GNU	Multi-Precision arithmetic library (GMP -- if we have        it) to compute certain items with high accuracy.	        (Euclidean FST generator)egmp.h	Declarations for GMP support routines.emptyr.c	(Rectilinear FST generator)	Routines to quickly determine whether or not a given pair of	terminals define an empty rectangle or not.  This information is	computed as part of the preprocessing step before recursively	growing rectilinear FSTs.emptyr.h	(Rectilinear FST generator)	Data structures and function prototypes pertaining to the empty	rectangle testing routines.emst.c		(Euclidean FST generator)	Routines to compute Euclidean minimum spanning trees.expand.c	(Branch-and-cut)	Subroutine to expand logical constraints into physical form.flow.c		(Branch-and-cut)	A general purpose maximum-flow network solver.  It uses the very	standard method -- breadth-first search to find an augmenting	path.  It is used in three of the separation procedures: the one	for fractional cutsets, the heuristic flow formulation for	SEC's, and the deterministic flow formulation for SEC's.flow.h		(Branch-and-cut)	Data structures and function prototypes pertaining to the	general network maximum-flow solver.fst2graph.c	(Main program)	The main routine to generate ordinary graphs from FST.genps.c		(Utility)	Routines for generating postscript plots of things.genps.h		(Utility)	Data structures and function prototypes pertaining to the	postscript generation routines.greedy.c	(Euclidean FST generator)	Implementation of greedy O(n^2) heuristic for computing	Euclidean Steiner trees (Algorithmica 25, 418-437, 1999).io.c		(Utility)	Routines for reading in coordinates, and converting coordinate	values and distances into printable form.  It also performs	scaling of coordinates and distances to and from the internal	representation, which strives to store coordinates exactly as	INTEGER values stored in floating point variables.kr.c		(Main program)	The main program for the "kr" program, which plots minimum	spanning trees and heuristic Steiner trees using the 1-Steiner	heuristic of Kahng and Robins.lib_points.c	(Main program)	Conversion of OR-LIBRARY or TSPLIB files into a "clean" set of        points that can be read by "rfst" or "efst".

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -