gkobeaga / op-solver Goto Github PK
View Code? Open in Web Editor NEWAlgorithms for the Orienteering Problem
License: Apache License 2.0
Algorithms for the Orienteering Problem
License: Apache License 2.0
I recommend that you export the built executable as a Docker image and put it on a public registry e.g., Docker Hub or GitHub packages, etc.
I ran the exact solver on the following dataset, and got a reward of 13. However, @friggstad and I found a better cycle with a reward of 14.
cycle: 0 13 46 20 35 27 7 18 43 45 15 12 11 23 14
Here is the dataset.
NAME : att48
COMMENT : 48 capitals of the US (Padberg/Rinaldi)
TYPE : OP
DIMENSION : 48
COST_LIMIT : 2657
EDGE_WEIGHT_TYPE : ATT
NODE_COORD_SECTION
1 6823 4674
2 7692 2247
3 9135 6748
4 7721 3451
5 8304 8580
6 7501 5899
7 4687 1373
8 5429 1408
9 7877 1716
10 7260 2083
11 7096 7869
12 6539 3513
13 6272 2992
14 6471 4275
15 7110 4369
16 6462 2634
17 8476 2874
18 3961 1370
19 5555 1519
20 4422 1249
21 5584 3081
22 5776 4498
23 8035 2880
24 6963 3782
25 6336 7348
26 8139 8306
27 4326 1426
28 5164 1440
29 8389 5804
30 4639 1629
31 6344 1436
32 5840 5736
33 5972 2555
34 7947 4373
35 6929 8958
36 5366 1733
37 4550 1219
38 6901 1589
39 6316 5497
40 7010 2710
41 9005 3996
42 7576 7065
43 4246 1701
44 5906 1472
45 6469 8971
46 6152 2174
47 5887 3796
48 7203 5958
NODE_SCORE_SECTION
1 0
2 1
3 1
4 1
5 1
6 1
7 1
8 1
9 1
10 1
11 1
12 1
13 1
14 1
15 1
16 1
17 1
18 1
19 1
20 1
21 1
22 1
23 1
24 1
25 1
26 1
27 1
28 1
29 1
30 1
31 1
32 1
33 1
34 1
35 1
36 1
37 1
38 1
39 1
40 1
41 1
42 1
43 1
44 1
45 1
46 1
47 1
48 1
DEPOT_SECTION
1
-1
EOF
Hi,
I used the attached instance for this task. However, it crashes.
Is there an error in the format?
instanceoplib.txt
I get the following error:
Solver v0.1
parameter(s): opt --op-exact 1
../../OP/Proj/instances_op_lib/instancesao.oplib
Reading problem data from '../../OP/Proj/instances_op_lib/instancesao.oplib'...
Problem Name: OP
Problem Type: OP
Number of Nodes: 62
Cost limit: 2000.00
Explicit Lengths (SOLVER_DATA_NORM_MATRIX)
Depot: 1
op-solver: ../../../../../src/cp/exact/bac/cut/sec/sec.c:498: cp_find_sec_cliques: Assertion `testobj == tmpobj' failed.
Aborted (core dumped)
I get this error:
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -o op-solver op_solver-op-solver.o cmd/op_solver-opt.o libopsolver.la -lm
libtool: link: gcc -g -O2 -o .libs/op-solver op_solver-op-solver.o cmd/op_solver-opt.o ./.libs/libopsolver.so -lm
/usr/bin/ld: ./.libs/libopsolver.so: undefined reference to `dlsym'
/usr/bin/ld: ./.libs/libopsolver.so: undefined reference to `dlerror'
/usr/bin/ld: ./.libs/libopsolver.so: undefined reference to `dladdr'
/usr/bin/ld: ./.libs/libopsolver.so: undefined reference to `dlopen'
/usr/bin/ld: ./.libs/libopsolver.so: undefined reference to `dlclose'
collect2: error: ld returned 1 exit status
Like the previous issue which is similar to this one, I changed the filename on line 74 as you suggested, but I still got this
Hello,
I am using the op-solver to run your evolutionary algorithm, ea4op. However, the algorithm doesn't return in many cases. I ensure that the cost matrix in the problem file is both symmetric and satisfies triangular inequality. I need the algorithm to let me know if there's no feasible solution. Instead, the program just runs forever...
Also, I am looking to produce paths, not cycles. Is there a way to do that?
Thank you.
Hi I am getting the following error on doing make
make clean
../configure
make
s/libopsolver.lax/libsolver-tsp.a/lt3-libsolver_tsp_heur_la-param.o
ar: `u' modifier ignored since `D' is the default (see `U')
libtool: link: ranlib .libs/libopsolver.a
libtool: link: rm -fr .libs/libopsolver.lax
libtool: link: ( cd ".libs" && rm -f "libopsolver.la" && ln -s "../libopsolver.la" "libopsolver.la" )
gcc -DHAVE_CONFIG_H -I. -I../../src -I.. -I../../src -g -O2 -MT op_solver-op-solver.o -MD -MP -MF .deps/op_solver-op-solver.Tpo -c -o op_solver-op-solver.o `test -f 'op-solver.c' || echo '../../src/'`op-solver.c
mv -f .deps/op_solver-op-solver.Tpo .deps/op_solver-op-solver.Po
gcc -DHAVE_CONFIG_H -I. -I../../src -I.. -I../../src -g -O2 -MT cmd/op_solver-opt.o -MD -MP -MF cmd/.deps/op_solver-opt.Tpo -c -o cmd/op_solver-opt.o `test -f 'cmd/opt.c' || echo '../../src/'`cmd/opt.c
mv -f cmd/.deps/op_solver-opt.Tpo cmd/.deps/op_solver-opt.Po
/bin/bash ../libtool --tag=CC --mode=link gcc -g -O2 -o op-solver op_solver-op-solver.o cmd/op_solver-opt.o libopsolver.la -lm
libtool: link: gcc -g -O2 -o .libs/op-solver op_solver-op-solver.o cmd/op_solver-opt.o ./.libs/libopsolver.so -lm
./.libs/libopsolver.so: undefined reference to `lp_free_solver'
./.libs/libopsolver.so: undefined reference to `lp_set_bnd'
./.libs/libopsolver.so: undefined reference to `lp_get_x'
./.libs/libopsolver.so: undefined reference to `lp_get_ncols'
./.libs/libopsolver.so: undefined reference to `cp_conv_cut_sol2connect'
./.libs/libopsolver.so: undefined reference to `cp_add_lp_cuts'
./.libs/libopsolver.so: undefined reference to `lp_opt_dual'
./.libs/libopsolver.so: undefined reference to `lp_create_solver'
./.libs/libopsolver.so: undefined reference to `cp_add_badvars'
./.libs/libopsolver.so: undefined reference to `lp_get_objval'
collect2: error: ld returned 1 exit status
Makefile:521: recipe for target 'op-solver' failed
make[3]: *** [op-solver] Error 1
The heuristic algorithm should compile regardless of whether the external LP solver is provided or not.
Hello,
I have been trying to follow the instructions for building this code as according to the readme. However I run into issues when running make
. Everything works fine until it comes time to link where ld
complains that __seed__
has multiple definitions. This has happened on both arch linux and debian running in wsl. I'm not sure if I'm doing things correctly however as the build also failed on ed4f8f92 which seemed to be working correctly for other users.
See below for the configuration summary and the errors from make.
configure: summary of build options:
Version: op-solver 0.1
Debug Build: no
Host type: x86_64-pc-linux-gnu
Install prefix: /usr/local
Compiler: gcc -g -O2
LP solver path: no
Static libraries: yes
Shared libraries: yes
Linker: /usr/bin/ld -m elf_x86_64
/usr/bin/ld: .libs/libsolver_graph_la-arc_hash.o:/home/corvid/Code/op-solver/build/src/graph/../../../src/op-solver.h:60: multiple definition of `__seed__'; .libs/libsolver_graph_la-graph.o:/home/corvid/Code/op-solver/build/src/graph/../../../src/op-solver.h:60: first defined here
/usr/bin/ld: cliques/.libs/libsolver_graph_la-cliques.o:/home/corvid/Code/op-solver/build/src/graph/../../../src/op-solver.h:60: multiple definition of `__seed__'; .libs/libsolver_graph_la-graph.o:/home/corvid/Code/op-solver/build/src/graph/../../../src/op-solver.h:60: first defined here
/usr/bin/ld: cliques/.libs/libsolver_graph_la-repo.o:/home/corvid/Code/op-solver/build/src/graph/../../../src/op-solver.h:60: multiple definition of `__seed__'; .libs/libsolver_graph_la-graph.o:/home/corvid/Code/op-solver/build/src/graph/../../../src/op-solver.h:60: first defined here
/usr/bin/ld: .libs/libsolver_graph_la-ghtree.o:/home/corvid/Code/op-solver/build/src/graph/../../../src/op-solver.h:60: multiple definition of `__seed__'; .libs/libsolver_graph_la-graph.o:/home/corvid/Code/op-solver/build/src/graph/../../../src/op-solver.h:60: first defined here
/usr/bin/ld: .libs/libsolver_graph_la-maxflow.o:/home/corvid/Code/op-solver/build/src/graph/../../../src/op-solver.h:60: multiple definition of `__seed__'; .libs/libsolver_graph_la-graph.o:/home/corvid/Code/op-solver/build/src/graph/../../../src/op-solver.h:60: first defined here
/usr/bin/ld: .libs/libsolver_graph_la-mincut.o:/home/corvid/Code/op-solver/build/src/graph/../../../src/op-solver.h:60: multiple definition of `__seed__'; .libs/libsolver_graph_la-graph.o:/home/corvid/Code/op-solver/build/src/graph/../../../src/op-solver.h:60: first defined here
/usr/bin/ld: .libs/libsolver_graph_la-mst.o:/home/corvid/Code/op-solver/build/src/graph/../../../src/op-solver.h:60: multiple definition of `__seed__'; .libs/libsolver_graph_la-graph.o:/home/corvid/Code/op-solver/build/src/graph/../../../src/op-solver.h:60: first defined here
/usr/bin/ld: .libs/libsolver_graph_la-connect.o:/home/corvid/Code/op-solver/build/src/graph/../../../src/op-solver.h:60: multiple definition of `__seed__'; .libs/libsolver_graph_la-graph.o:/home/corvid/Code/op-solver/build/src/graph/../../../src/op-solver.h:60: first defined here
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:436: libsolver-graph.la] Error 1
make[2]: *** [Makefile:633: all-recursive] Error 1
make[1]: *** [Makefile:400: all-recursive] Error 1
make: *** [Makefile:332: all] Error 2
Iโm sorry to disturb you in your busy schedule. I want to have a look at the code for the paper in your acknowledgments. Could you send me the source code of the paper "Solving the orienteering problem through branch-and-cut" .
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.