gpt4 book ai didi

java - 比较两个数据结构并建议最佳匹配

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:08:21 25 4
gpt4 key购买 nike

大家好,我有两个结构,即 Map<String,Map<String,String>> .第一个 map 结构是医院偏好示例<Hospital name,<Student,Preferences>> .第二张图是学生偏好示例 <Student,<Hospital,Preferences>> .我如何比较两者并根据给定的偏好找到最佳匹配。

查找以下数据第一张 map

{St. Luke's={ Martin Fowler= 2,  Alan Turing= 1}, Olathe Medical Center={ Martin Fowler= 2,  Alan Turing= 1}}

第二张 map

{Martin Fowler={ Olathe Medical Center= 1,  St. Luke's= 2}, Alan Turing={ Olathe Medical Center= 1,  St. Luke's= 2}, Martin Fowler={ Olathe Medical Center= 1,  St. Luke's= 2}}

创建这个结构的代码是

    public Map<String,Map<String,String>> readingFile(String filename) {
Map<String,String> preference = new HashMap<String,String>();
Map<String,Map<String,String>> DataPreference = new HashMap<String,Map<String,String>>();
CSVReader reader = null;
try {
reader = new CSVReader(new FileReader(filename));
String[] line;
while ((line = reader.readNext()) != null) {
preference.put(line[1], line[2]);
DataPreference.put(line[0], preference);
}
System.out.println(DataPreference);
}
catch (IOException |ArrayIndexOutOfBoundsException e) {
System.out.println("File empty or File not fond in the given Path ");
}
return DataPreference;
}

谢谢

最佳答案


此问题是 stable marriage problem / stable matching problem 的变体,即允许不平等的大小和一夫多妻制:)

该算法通过多个轮数 工作。医院根据学生的喜好进行匹配。然后学生审查这些建议,暂时保留最好的建议并拒绝其余的。在下一轮中,被拒绝的医院提出他们的下一个最佳选择,学生再次保留最好的建议并拒绝其余的。这个过程一直持续到没有更多学生可以提议为止。

使用的原则是延迟接受

http://www.nrmp.org/matching-algorithm/

关于java - 比较两个数据结构并建议最佳匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53386466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com