Сравните две структуры данных и предложите лучшее совпадение - PullRequest
0 голосов
/ 20 ноября 2018

Привет всем, у меня есть две структуры, которые Map<String,Map<String,String>>. Первая структура карты - это пример предпочтений больницы <Hospital name,<Student,Preferences>>.Вторая карта - пример предпочтений студента <Student,<Hospital,Preferences>>.Как я могу сравнить оба и найти лучшие совпадения в соответствии с данным предпочтением.

Найти данные ниже Первая карта

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

Вторая карта

{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;
}

Спасибо

1 Ответ

0 голосов
/ 21 ноября 2018

Эта проблема является вариантом проблемы стабильного брака / проблемы стабильного сопоставления , т. Е. С неравным размером и допустимым многоженством:)

Алгоритм работает по ряду раундов .Больница подбирает студента в соответствии со своими предпочтениями.Затем студент рассматривает предложения, предварительно придерживается лучшего предложения и отклоняет остальные.В следующем туре отклоненные больницы предлагают свой следующий лучший выбор, и студенты снова сохраняют лучшее предложение и отклоняют остальные.Этот процесс продолжается до тех пор, пока не останется больше учеников, чтобы предложить.

Используется принцип отложенное принятие

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...