In [1]:
include("deferred_acceptance.jl")
Out[1]:
In [2]:
using Matching
In [3]:
function mat2vecs{T<:Integer}(prefs::Matrix{T})
return [prefs[1:findfirst(prefs[:, j], 0)-1, j] for j in 1:size(prefs, 2)]
end
Out[3]:
In [9]:
m_prefs, f_prefs = mat2vecs.(random_prefs(4, 4))
Out[9]:
In [10]:
my_deferred_acceptance(m_prefs, f_prefs)
Out[10]:
In [ ]:
function my_deferred_acceptance(m_prefs::Vector{Vector{Int}},
f_prefs::Vector{Vector{Int}})
function prefs_2d(x, y)
end
m_prefs_2d = Array{Int64}(length(f_prefs)+1, length(m_prefs))
for i in 1:length(m_prefs)
if length(m_prefs[i]) != length(f_prefs)
x = vcat(m_prefs[i], 0)
x = vcat(x, setdiff([i for i in 1:length(f_prefs)], m_prefs[i]))
m_prefs_2d[:,i] = x
else
m_prefs_2d[:,i] = vcat(m_prefs[i], 0)
end
end
f_prefs_2d = Array{Int64}(length(m_prefs)+1, length(f_prefs))
for i in 1:length(f_prefs)
if length(f_prefs[i]) != length(m_prefs)
x = vcat(f_prefs[i], 0)
x = vcat(x, setdiff([i for i in 1:length(m_prefs)], f_prefs[i]))
f_prefs_2d[:,i] = x
else
f_prefs_2d[:,i] = vcat(f_prefs[i], 0)
end
end
return my_deferred_acceptance(m_prefs_2d, f_prefs_2d)
end