Skip to content
Snippets Groups Projects
evaluation.jl 1.96 KiB
Newer Older
  • Learn to ignore specific revisions
  • using RidePooling
    RP = RidePooling
    using DataFrames
    using Measurements
    import Base.Filesystem
    FS = Base.Filesystem
    
    
    path = "/project.dcf/poss/datasets/planned_pickup/drive_and_wait/anywt1_anydt01/"
    model_path = path * "/models/"
    
    # Values I want to calculate for every model
    req_quantitys_mean = [
    	
    	:relative_delay,
    	#:delay,
    	#:relative_waiting_time,
    	#:waiting_time,
    	#:served,
    	#:requested_distance,
    	#:requested_time,
    	#:total_time,
    	#:travelling_time,
        #:resubmitted_served_percentage,
    	#:dt_earliest_served,
        #:dt_earliest,
    	#:relative_dt_earliest
    
    ]
    
    req_quantitys_sum = [
    	:count_req,
    	#:resubmitted_all,
    	#:resubmitted_served,
    ]
    
    bus_quantitys = [
    	:cooldown_time,
    ]
    
    model_quantitys = [
    	:driven_distance,
    	#:efficiency,
    	#:quality
    ]
    
    results = DataFrame()
    results[:index] = Int[]
    results[:dt_earliest_pickup] = Float64[]
    results[:weight] = Float64[]
    results[:resubmission_time_factor] = Float64[]
    results[:ν] = Float64[]
    results[:request_type] = Any[]
    for quan in req_quantitys_mean
    	results[quan] = Measurement[]
    end
    
    for quan in req_quantitys_sum
    	results[quan] = Float64[]
    end
    
    for quan in bus_quantitys
    	results[quan] = Measurement[]
    end
    
    for quan in model_quantitys
    	results[quan] = Measurement[]
    end
    
    
    
    filenames = readdir(model_path, join=true)
    
    for model_nr in filenames
    	model=loadmodel(model_nr)
    	row = Dict()
    	
    	
    	row[:index] = parse(Int, FS.splitext(model_nr)[1])
    	row[:dt_earliest_pickup] = model.random_gens[model.request_type][2]
    	row[:idle_wight] = model.cost_idle_weight
    	row[:ν] = model.ν
    	row[:to] = model.t0
    	row[:request_type] = model.request_type
    
    	for quan in req_quantitys_mean
    		row[quan] = ev.quantity(quan, model_now)
    	end
    	for quan in req_quantitys_sum
    		row[quan] = ev.sum(quan, model)
    	end
    	for quan in bus_quantitys
    		row[quan] = ev.quantity(quan, model.agents, model)
    	end
    	for quan in model_quantitys
    		f = @eval (ev.$quan)
    		row[quan] = f(model)
    	end
    	using Serialization
    	push!(results, row)
    end
    
    using Serialization
    serialize(path*"results.jls", df)