using MetagraphOptimization using Plots using Random function gen_plot(filepath) name = basename(filepath) name, _ = splitext(name) filepath = joinpath(@__DIR__, filepath) if !isfile(filepath) println("File ", filepath, " does not exist, skipping") return end g = parse_abc(filepath) Random.seed!(1) println("Random Walking... ") x = Vector{Float64}() y = Vector{Float64}() for i = 1:30 print("\r", i) # push opt = get_operations(g) # choose one of fuse/split/reduce option = rand(1:3) if option == 1 && !isempty(opt.nodeFusions) push_operation!(g, rand(collect(opt.nodeFusions))) println("NF") elseif option == 2 && !isempty(opt.nodeReductions) push_operation!(g, rand(collect(opt.nodeReductions))) println("NR") elseif option == 3 && !isempty(opt.nodeSplits) push_operation!(g, rand(collect(opt.nodeSplits))) println("NS") else i = i-1 end props = graph_properties(g) push!(x, props.data) push!(y, props.compute_effort) end println("\rDone.") plot([x[1], x[2]], [y[1], y[2]], linestyle = :solid, linewidth = 1, color = :red, legend=false) # Create lines connecting the reference point to each data point for i in 3:length(x) plot!([x[i-1], x[i]], [y[i-1], y[i]], linestyle = :solid, linewidth = 1, color = :red) end gui() end gen_plot("AB->ABBB.txt")