Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
EO-severus
仿真代码
提交
07647159
仿
仿真代码
项目概览
EO-severus
/
仿真代码
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
仿
仿真代码
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
07647159
编写于
1月 09, 2023
作者:
EO-severus
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新Others'Code/Matching Algo/DeferAccpet_alg.m, Others'Code/Matching Algo/GaleShapley.m
已删除DeferAccpet_alg.m
上级
78cbe69b
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
1 addition
and
175 deletion
+1
-175
DeferAccpet_alg.m
DeferAccpet_alg.m
+0
-175
Others'Code/Matching Algo/DeferAccpet_alg.m
Others'Code/Matching Algo/DeferAccpet_alg.m
+1
-0
Others'Code/Matching Algo/GaleShapley.m
Others'Code/Matching Algo/GaleShapley.m
+0
-0
未找到文件。
DeferAccpet_alg.m
已删除
100644 → 0
浏览文件 @
78cbe69b
%��CSDN���ҵĸǶ��������㷨���ӳٽ��ܣ��������ο��Լ�д��Ultra dense..��2019��һ�ĵĸ��ִ���
%��Դ��https://blog.csdn.net/fancyTang/article/details/107390001
clc
;
clear
;
%% ����ƫ�þ�����ƥ���㷨
Num
=
6
;
M
=
zeros
(
Num
,
Num
);
F
=
zeros
(
Num
,
Num
);
for
i
=
1
:
Num
M
(
i
,:)
=
randperm
(
Num
);
F
(
i
,:)
=
randperm
(
Num
);
end
[
pairing_vec
,
conv_vec
,
time
,
sta
]
=
DAalg
(
M
,
F
)
%ֱ�����
%% Gale-Shapleyƥ���㷨������
function
[
pairing_vec
,
conv_vec
,
time
,
sta
]
=
DAalg
(
PL_matr1
,
PL_matr2
)
%time--��������;sta--�ȶ���
[
m1
,
n1
]
=
size
(
PL_matr1
);
%woman
[
m2
,
n2
]
=
size
(
PL_matr2
);
%man
pairing_vec
=
zeros
(
m1
,
m2
);
%��ʼ����Խ��
number_min
=
min
(
m1
,
m2
);
%�������б��еĽ�Сֵ���������ٵ�һ��
%number_max = max(m1,m2);%�������б��еĽϴ�ֵ
% man_flag = zeros(1,m2);%���mani�Ƿ����
% woman_flag = zeros(1,m1);%���womanj�Ƿ����
man_reject
=
ones
(
1
,
m2
);
%���man���ܾ�
man_rejection_list
=
zeros
(
m2
,
n2
);
%���man�ľܾ��б�
woman_proposal_list
=
zeros
(
m1
,
n1
);
%���woman�Ŀ�ѡ�б�
% index = 0;index1 = 0;index2 = 0;
num
=
1
;
while
(
number_min
>
nozero
(
pairing_vec
)
)
%�����ٵ�һ������Ŀ��������Ծ����еķ�����Ŀʱ����ѭ�����
%index1 = 0;index2 = 0;
for
i
=
1
:
m2
mark_reject
=
man_reject
(
1
,
i
);
index1
=
0
;
%index2 = 0;
if
(
mark_reject
==
1
)
%&&(man_flag(1,i) == 0)) %���mani���ܾ�
for
j
=
1
:
m1
if
(
man_rejection_list
(
i
,
j
)
==
0
)
%&&(woman_flag(1,j) == 0))%���womanjδ�ܾ�mani
index
=
PL_matr2
(
i
,
j
);
% ͳ��mani��womanj��ϲ���̶�
if
index
>
index1
index1
=
index
;
%index2 = j;
end
man_reject
(
1
,
i
)
=
0
;
%���maniΪδ�ܾ�
%break;
end
end
for
j
=
1
:
m1
%if woman_flag(1,j) == 0
if
PL_matr2
(
i
,
j
)
==
index1
woman_proposal_list
(
j
,
i
)
=
1
;
%�ҵ���maniϲ���̶�����womanj������mani����womanj�Ŀ�ѡ��
%man_reject(1,i) = 0; %���maniΪδ�ܾ�
%break;
else
continue
;
end
%end
end
else
continue
;
end
end
%����woman_proposal_list
%index1 = 0;index2 = 0;
for
j
=
1
:
m1
woman_proposal
=
sum
(
woman_proposal_list
(
j
,:));
index1
=
0
;
%index2 = 0 ;
if
(
woman_proposal
~=
0
)
%&&(woman_flag(1,j) == 0)) %���woman�Ŀ�ѡ�б�����0�����п�ѡ����
for
i
=
1
:
m2
%if man_flag(1,i) == 0
if
(
woman_proposal_list
(
j
,
i
)
==
1
)
index
=
PL_matr1
(
j
,
i
);
% ͳ��mani��womanj��ϲ���̶�
if
(
index
>
index1
)
%&& (man_flag(1,i) == 0))
index1
=
index
;
%index2 = i;
end
%�ҵ���womanjϲ���̶�����mani
end
%end
end
for
i
=
1
:
m2
%if man_flag(1,i) == 0
if
(
woman_proposal_list
(
j
,
i
)
==
1
)
if
(
PL_matr1
(
j
,
i
)
~=
index1
)
%����womanj����ϲ���̶�����man֮�������man�����Ƴ�
woman_proposal_list
(
j
,
i
)
=
0
;
%��ѡ���б����Ƴ�
man_reject
(
1
,
i
)
=
1
;
%���Ϊ���ܾ�
man_rejection_list
(
i
,
j
)
=
1
;
%���뱻�ܾ��б�
else
continue
;
end
else
continue
;
end
% else
% continue;
% end
end
else
continue
;
end
woman_proposal
=
sum
(
woman_proposal_list
(
j
,:));
index3
=
0
;
index4
=
0
;
if
(
woman_proposal
>
1
)
%Ů���Ŀ�ѡ�б���ֹ��һ�������Ǵ�ʱֻ�ܱ���һ��
for
i
=
1
:
m2
if
(
woman_proposal_list
(
j
,
i
)
==
1
)
index2
=
PL_matr1
(
j
,
i
);
if
index2
>
index3
index3
=
index2
;
index4
=
i
;
end
else
continue
;
end
end
for
i
=
1
:
m2
if
(
i
~=
index4
)
woman_proposal_list
(
j
,
i
)
=
0
;
%��ѡ���б����Ƴ�
man_reject
(
1
,
i
)
=
1
;
%���Ϊ���ܾ�
man_rejection_list
(
i
,
j
)
=
1
;
%���뱻�ܾ��б�
end
end
end
end
%��֤woman_proposal_listÿһ��ֻ��һ��1
pairing_vec
=
woman_proposal_list
;
%%�������
%man_rejection_list = zeros(m2,n2);%���man�ľܾ��б�
%woman_proposal_list = zeros(m1,n1);%���woman�Ŀ�ѡ�б�
conv_vec
=
pairing_vec
;
num
=
num
+
1
;
end
time
=
num
;
sta1
=
0
;
sta2
=
0
;
for
i
=
1
:
m1
for
j
=
1
:
m2
if
(
woman_proposal_list
(
i
,
j
)
==
1
)
sta1
=
sta1
+
woman_proposal_list
(
i
,
j
)
*
PL_matr1
(
i
,
j
);
end
end
end
for
i
=
1
:
m2
for
j
=
1
:
m1
if
(
woman_proposal_list
(
i
,
j
)
==
1
)
sta2
=
sta2
+
woman_proposal_list
(
i
,
j
)
*
PL_matr2
(
i
,
j
);
end
end
end
sta
=
sta1
+
sta2
;
% sta = sum(sum(PL_matr1*woman_proposal_list))+sum(sum(PL_matr2*(woman_proposal_list')));
% plot(x,y);
function
result
=
nozero
(
A
)
%������з�������ĺ���
B
=
(
A
~=
0
);
result
=
sum
(
B
(:));
end
end
%% ���ӻ�
Others'Code/Matching Algo/DeferAccpet_alg.m
0 → 100644
浏览文件 @
07647159
GaleShapley.m
→
Others'Code/Matching Algo/
GaleShapley.m
浏览文件 @
07647159
文件已移动
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录