diff --git a/pace-2020/Makefile b/pace-2020/Makefile index ab13e10aa847014335b1e73b6bf774234164602c..1a309c727d1d9430caa3df1c30be45de1ebe72eb 100644 --- a/pace-2020/Makefile +++ b/pace-2020/Makefile @@ -12,55 +12,54 @@ ifeq ($(PACE),yes) PACE_FLAG= -DPACE_2020 endif +src=. all: treedepth -treedepth: obj/main.o obj/lists.o obj/lire.o obj/graph.o obj/fibheap.o obj/tree.o obj/separator.o obj/decompose.o obj/heap.o obj/sets.o obj/utils.o obj/compression.o obj/components.o obj/swaps.o - gcc $(CFLAGS) obj/main.o obj/lists.o obj/lire.o obj/graph.o obj/fibheap.o obj/tree.o obj/separator.o obj/decompose.o obj/heap.o obj/sets.o obj/utils.o obj/compression.o obj/components.o obj/swaps.o -o treedepth +treedepth: obj/main.o obj/lists.o obj/lire.o obj/graph.o obj/tree.o obj/separator.o obj/decompose.o obj/heap.o obj/sets.o obj/utils.o obj/compression.o obj/components.o obj/swaps.o + gcc $(CFLAGS) obj/main.o obj/lists.o obj/lire.o obj/graph.o obj/tree.o obj/separator.o obj/decompose.o obj/heap.o obj/sets.o obj/utils.o obj/compression.o obj/components.o obj/swaps.o -o treedepth -obj/swaps.o: sga/swaps.c sga/swaps.h sga/graph.h sga/utils.h sga/sets.h sga/lists.h sga/tree.h sga/decompose.h sga/main.h - gcc $(CFLAGS) -c sga/swaps.c -o obj/swaps.o +obj/swaps.o: ${src}/swaps.c ${src}/swaps.h ${src}/graph.h ${src}/utils.h ${src}/sets.h ${src}/lists.h ${src}/tree.h ${src}/decompose.h ${src}/main.h + gcc $(CFLAGS) -c ${src}/swaps.c -o obj/swaps.o -obj/components.o: sga/components.c sga/components.h sga/graph.h sga/utils.h sga/sets.h sga/lists.h sga/heap.h - gcc $(CFLAGS) -c sga/components.c -o obj/components.o +obj/components.o: ${src}/components.c ${src}/components.h ${src}/graph.h ${src}/utils.h ${src}/sets.h ${src}/lists.h ${src}/heap.h + gcc $(CFLAGS) -c ${src}/components.c -o obj/components.o -obj/compression.o: sga/compression.c sga/compression.h sga/graph.h sga/utils.h sga/tree.h sga/sets.h - gcc $(CFLAGS) -c sga/compression.c -o obj/compression.o +obj/compression.o: ${src}/compression.c ${src}/compression.h ${src}/graph.h ${src}/utils.h ${src}/tree.h ${src}/sets.h + gcc $(CFLAGS) -c ${src}/compression.c -o obj/compression.o -obj/utils.o: sga/utils.c sga/utils.h - gcc $(CFLAGS) -c sga/utils.c -o obj/utils.o +obj/utils.o: ${src}/utils.c ${src}/utils.h + gcc $(CFLAGS) -c ${src}/utils.c -o obj/utils.o -obj/sets.o: sga/sets.c sga/sets.h - gcc $(CFLAGS) -c sga/sets.c -o obj/sets.o +obj/sets.o: ${src}/sets.c ${src}/sets.h + gcc $(CFLAGS) -c ${src}/sets.c -o obj/sets.o -obj/decompose.o: sga/decompose.c sga/decompose.h sga/separator.h sga/graph.h sga/utils.h sga/tree.h sga/compression.h sga/separator.h sga/heap.h sga/main.h sga/components.h sga/swaps.h - gcc $(CFLAGS) $(PACE_FLAG) -c sga/decompose.c -o obj/decompose.o +obj/decompose.o: ${src}/decompose.c ${src}/decompose.h ${src}/separator.h ${src}/graph.h ${src}/utils.h ${src}/tree.h ${src}/compression.h ${src}/separator.h ${src}/heap.h ${src}/main.h ${src}/components.h ${src}/swaps.h + gcc $(CFLAGS) $(PACE_FLAG) -c ${src}/decompose.c -o obj/decompose.o -obj/separator.o: sga/separator.c sga/separator.h sga/graph.h sga/utils.h sga/components.h sga/main.h sga/heap.h - gcc $(CFLAGS) -c sga/separator.c -o obj/separator.o +obj/separator.o: ${src}/separator.c ${src}/separator.h ${src}/graph.h ${src}/utils.h ${src}/components.h ${src}/main.h ${src}/heap.h + gcc $(CFLAGS) -c ${src}/separator.c -o obj/separator.o -obj/tree.o: sga/tree.c sga/tree.h sga/graph.h sga/utils.h sga/sets.h sga/decompose.h - gcc $(CFLAGS) -c sga/tree.c -o obj/tree.o +obj/tree.o: ${src}/tree.c ${src}/tree.h ${src}/graph.h ${src}/utils.h ${src}/sets.h ${src}/decompose.h + gcc $(CFLAGS) -c ${src}/tree.c -o obj/tree.o -obj/main.o: sga/main.c sga/lists.h sga/lire.h sga/graph.h sga/main.h - gcc $(CFLAGS) $(PACE_FLAG) -c sga/main.c -o obj/main.o +obj/main.o: ${src}/main.c ${src}/lists.h ${src}/lire.h ${src}/graph.h ${src}/main.h + gcc $(CFLAGS) $(PACE_FLAG) -c ${src}/main.c -o obj/main.o -obj/graph.o: sga/graph.c sga/graph.h sga/lists.h - gcc $(CFLAGS) -c sga/graph.c -o obj/graph.o +obj/graph.o: ${src}/graph.c ${src}/graph.h ${src}/lists.h + gcc $(CFLAGS) -c ${src}/graph.c -o obj/graph.o -obj/lists.o: sga/lists.c sga/lists.h - gcc $(CFLAGS) -c sga/lists.c -o obj/lists.o +obj/lists.o: ${src}/lists.c ${src}/lists.h + gcc $(CFLAGS) -c ${src}/lists.c -o obj/lists.o -obj/lire.o: sga/lire.c sga/lire.h sga/lists.h sga/graph.h sga/main.h - gcc $(CFLAGS) -c sga/lire.c -o obj/lire.o +obj/lire.o: ${src}/lire.c ${src}/lire.h ${src}/lists.h ${src}/graph.h ${src}/main.h + gcc $(CFLAGS) -c ${src}/lire.c -o obj/lire.o -obj/fibheap.o: sga/fibheap.c sga/fibheap.h - gcc $(CFLAGS) -c sga/fibheap.c -o obj/fibheap.o -obj/heap.o: sga/heap.c sga/heap.h - gcc $(CFLAGS) -c sga/heap.c -o obj/heap.o +obj/heap.o: ${src}/heap.c ${src}/heap.h + gcc $(CFLAGS) -c ${src}/heap.c -o obj/heap.o clean: rm -f treedepth \ diff --git a/pace-2020/README.txt b/pace-2020/README.txt new file mode 100644 index 0000000000000000000000000000000000000000..f9be6cbb4de5be22ed96374673497972c6cbbd4e --- /dev/null +++ b/pace-2020/README.txt @@ -0,0 +1,9 @@ +sga: a program that constructs a tree decomposition of a graph. + +The approach consists first in performing recursively decompositions of the graph, building ta partition of the vertices A-B-C such that there are no edge of G between vertices of A and B. C is the separator. +Then the resulting decomposition is improved applying pullup and swap operations while the height of the decomposition decreases. + +Type make to build the program named treedepth. Type ./treedepth -help to print usage information. +For example ./treedepth -file heur_111.gr time 60. +Use make PACE=yes to generate a version of the program corresponding to pace 2020 requirements. +