diff --git a/Manifest.toml b/Manifest.toml index 28bbaa288e0f17c6efabcdf9b0fdffbcd5d218cd..6a60152609a69c0d7d5e443a7d8d3620225d17df 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -845,6 +845,14 @@ git-tree-sha1 = "4036a3bd08ac7e968e27c203d45f5fff15020621" uuid = "ae029012-a4dd-5104-9daa-d747884805df" version = "1.1.3" +[[RidePooling]] +deps = ["Agents", "BenchmarkTools", "DelimitedFiles", "Distributions", "LinearAlgebra", "Measures", "OpenStreetMapX", "OpenStreetMapXPlot", "Pkg", "PlotlyJS", "Plots", "PolygonOps", "PrettyTables", "Random", "Serialization", "SparseArrays"] +git-tree-sha1 = "7e7f7b5b6984a8265cd1181877a8b880088dd113" +repo-rev = "planned_pickup" +repo-url = "https://gitlab.gwdg.de/smuehle1/RidePooling/" +uuid = "2a705bf3-b16b-4235-81e9-bc2517364992" +version = "0.9.0" + [[Rmath]] deps = ["Random", "Rmath_jll"] git-tree-sha1 = "bf3188feca147ce108c76ad82c2792c57abe7b1f" diff --git a/Project.toml b/Project.toml index 663c2ca72d24048ddd68c7985d8e6a86df09f0d7..a77f60393c6b86d588631f9de141a3f7b6cd1edd 100644 --- a/Project.toml +++ b/Project.toml @@ -6,6 +6,7 @@ version = "0.1.0" Agents = "46ada45e-f475-11e8-01d0-f70cc89e6671" BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" CSV = "336ed68f-0bac-5ca0-87d4-7b16caf5d00b" +DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" DelimitedFiles = "8bb1440f-4735-579b-a4ab-409b98df4dab" Distributions = "31c24e10-a181-5473-b8eb-7969acd0382f" LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" @@ -17,11 +18,12 @@ Plots = "91a5bcdd-55d7-5caf-9e0b-520d859cae80" PolygonOps = "647866c9-e3ac-4575-94e7-e3d426903924" PrettyTables = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" +RidePooling = "2a705bf3-b16b-4235-81e9-bc2517364992" Serialization = "9e88b42a-f829-5b0c-bbe9-9e923198166b" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" [compat] Agents = "= 4.1.3" OpenStreetMapX = "= 0.2.3" -julia = "1.5" RidePooling = "0.9" +julia = "1.5" diff --git a/initialize.jl b/initialize.jl index ecc52be463637bda919fb036b01bfdd21f203ad1..96c3154f18023de241c2a148aa0083ab041700e5 100644 --- a/initialize.jl +++ b/initialize.jl @@ -1,8 +1,7 @@ export data_functions, save_path, getValues import Pkg Pkg.activate(".") -import RidePooling #How can I use using instead -RP = RidePooling + using DataFrames using DelimitedFiles @@ -38,7 +37,7 @@ end """ Function for Running a RidePooling simulation with the normalized Frequency x """ -function simulate_rp(paths,N, x, y, t0, specs, served = 10*N, requested=10*N) +function simulate_rp(paths::Dict, N::Int64, x, y, t0::Float64, specs; served = 10*N, requested=10*N) #Make Model #TODO Make Random gens @@ -59,6 +58,6 @@ function simulate_rp(paths,N, x, y, t0, specs, served = 10*N, requested=10*N) writedlm(io, Iterators.flatten(([names(data)], eachrow(data))), ',') end #Save the model for possible later reference - #RP.savemodel(paths[:model],model;route_matrix=false) #QUESTION What savepath + RP.savemodel(paths[:model]*"$index.model",model;route_matrix=false) #QUESTION What savepath # QUESTION How do I use the saving end diff --git a/initialize.sh b/initialize.sh new file mode 100755 index 0000000000000000000000000000000000000000..1f62b865d33e31fe5e6242596ee8ff47e72a0bf8 --- /dev/null +++ b/initialize.sh @@ -0,0 +1,15 @@ +#!/bin/bash + + + +N=1 +SAVE_PATH="${PWD}/results/" +INDEX=1 +DATA_PATH="${SAVE_PATH}data/" +MODEL_PATH="${SAVE_PATH}model/" +mkdir -p $DATA_PATH +mkdir $MODEL_PATH + + +# Test , if the simulation is starting: +julia sim.jl $N $SAVE_PATH $INDEX diff --git a/results/data/1.csv b/results/data/1.csv new file mode 100644 index 0000000000000000000000000000000000000000..2b93af6330c613e43a4320e6565bff64501cad09 --- /dev/null +++ b/results/data/1.csv @@ -0,0 +1,2 @@ +driven_distance,dt_earliest_pickup,frequency,mean_occupancy,mean_relative_delay,requested_distance,served_percentage +79.19370443654049,1.0,10.0,(2.1515632957803708, 2.1515632957803708, 1.511439902430138, 1.511439902430138),2.407237058707249,413.4767807877514,0.9523809523809523 diff --git a/example/ruben/example_map/delays_wt1reldelta1/dispatcher.jl b/results/example_map/delays_wt1reldelta1/dispatcher.jl similarity index 93% rename from example/ruben/example_map/delays_wt1reldelta1/dispatcher.jl rename to results/example_map/delays_wt1reldelta1/dispatcher.jl index eae2b6ea9be51bc877f4c47f9d90fdf688e35c1c..e569b48fc6901beb694db54be6e0f4534d96d179 100644 --- a/example/ruben/example_map/delays_wt1reldelta1/dispatcher.jl +++ b/results/example_map/delays_wt1reldelta1/dispatcher.jl @@ -3,5 +3,5 @@ max_relative_detour=1.0 dispatcher=(; cost=:delays, - rejection_criterion=((:any_relative_detour,max_relative_detour)) + rejection_criterion=((:any_relative_detour,max_relative_detour),) ) diff --git a/example/ruben/example_map/map/map.jl b/results/example_map/map/map.jl similarity index 100% rename from example/ruben/example_map/map/map.jl rename to results/example_map/map/map.jl diff --git a/example/ruben/example_map/map/route_matrix b/results/example_map/map/route_matrix similarity index 100% rename from example/ruben/example_map/map/route_matrix rename to results/example_map/map/route_matrix diff --git a/example/ruben/example_map/map/timescale.txt b/results/example_map/map/timescale.txt similarity index 100% rename from example/ruben/example_map/map/timescale.txt rename to results/example_map/map/timescale.txt diff --git a/results/model/1.model b/results/model/1.model new file mode 100644 index 0000000000000000000000000000000000000000..d7dcbe713c56054b5e3c029b672bfac6c1ba62a2 Binary files /dev/null and b/results/model/1.model differ diff --git a/sim.jl b/sim.jl index ead35feea3040dd431100d37fa2313b3139dd81c..b1215e4623f88b38d82e48a0e21e9f666ca9d251 100644 --- a/sim.jl +++ b/sim.jl @@ -1,8 +1,11 @@ using Pkg Pkg.activate(".") +#Pkg.add(url="https://gitlab.gwdg.de/smuehle1/RidePooling/", rev="planned_pickup") Pkg.instantiate() #there may be an error here concerning PyCall. The dependencies assume Python to be installed on your system, with package 'matplotlib' installed. #Either just run 'conda install -c conda-forge matplotlib' in your system shell, or follow instructions below (after running this cell and getting an error) to solve everything from within Julia. import RidePooling + +#include("../RidePooling/src/RidePooling.jl") RP = RidePooling using DataFrames using CSV @@ -23,27 +26,24 @@ try global index = eval(Meta.parse(ARGS[3])) println("Using Command line parameters \n\tN = $N\n\tsave_path = $save_path\n\tindex = $index") catch e - println(e.msg) + println(e) try - index=1 - save_path = pwd()*"/example/ruben/" - N=10 + global N=10 global save_path = Meta.parse(ARGS[1]) global index = eval(Meta.parse(ARGS[2])) println("No N found. Falling back to standart value:\n\tN=$N") catch e - println(e.msg) + println(e) try - index=1 - save_path = pwd()*"/example/ruben/" - N=10 + global save_path = pwd()*"/results/" + global N=10 global index=eval(Meta.parse(ARGS[1])) println("No Savepath or N found. Falling back to standart values:\n\tN=$N\n\tfilepath=$save_path") catch e - println(e.msg) - index=1 - save_path = pwd()*"/example/ruben/" - N=10 + println(e) + global index=1 + global save_path = pwd()*"/results/" + global N=10 println("No Filepath and no Index found. Falling back to standart values:\n\tindex = $index\n\tSave Path = $save_path") end end @@ -57,12 +57,18 @@ paths = Dict(:data => "data/", :map => "example_map/map/", :dispatcher => "example_map/delays_wt1reldelta1/") -#TODO Gucke ob die Ordner existieren for (name, path) in paths paths[name] = save_path * path end +#TODO Gucke ob die Ordner existieren +if !isdir(paths[:data]) + print("Please create data folder at $(paths[:data])") +end +if !isdir(paths[:model]) + print("Please create model folder at $(paths[:model])") +end map_folder = paths[:map] requested = 20 * N diff --git a/test.sh b/test.sh deleted file mode 100755 index d5d97f4887241b5a7dbd3b2521ba964d06cf80cf..0000000000000000000000000000000000000000 --- a/test.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - - -N=20 -SAVE_PATH="./example/ruben/" -INDEX=1 - - -julia sim.jl $N $SAVE_PATH $INDEX