def get_input_data(input_dir): file_names = ( 'alternatives.xml', 'criteria.xml', 'interactions.xml', 'method_parameters.xml', 'performance_table.xml', 'weights.xml', ) trees = get_trees(input_dir, file_names) alternatives = px.getAlternativesID(trees['alternatives']) criteria = px.getCriteriaID(trees['criteria']) pref_directions = px.getCriteriaPreferenceDirections(trees['criteria'], criteria) thresholds = px.getConstantThresholds(trees['criteria'], criteria) weights = px.getCriterionValue(trees['weights'], criteria) performances = px.getPerformanceTable(trees['performance_table'], 1, 1) interactions = get_criteria_interactions(trees['interactions'], criteria) check_net_balance(interactions, weights) z_function = px.getParameterByName(trees['method_parameters'], 'z_function') ret = { 'alternatives': alternatives, 'criteria': criteria, 'interactions': interactions, 'performances': performances, 'pref_directions': pref_directions, 'thresholds': thresholds, 'weights': weights, 'z_function': z_function, } return ret
def get_input_data(input_dir): file_names = ( 'alternatives.xml', 'criteria.xml', 'interactions.xml', 'method_parameters.xml', 'performance_table.xml', 'weights.xml', ) trees = get_trees(input_dir, file_names) alternatives = px.getAlternativesID(trees['alternatives']) criteria = px.getCriteriaID(trees['criteria']) pref_directions = px.getCriteriaPreferenceDirections( trees['criteria'], criteria) thresholds = px.getConstantThresholds(trees['criteria'], criteria) weights = px.getCriterionValue(trees['weights'], criteria) performances = px.getPerformanceTable(trees['performance_table'], 1, 1) interactions = get_criteria_interactions(trees['interactions'], criteria) check_net_balance(interactions, weights) z_function = px.getParameterByName(trees['method_parameters'], 'z_function') ret = { 'alternatives': alternatives, 'criteria': criteria, 'interactions': interactions, 'performances': performances, 'pref_directions': pref_directions, 'thresholds': thresholds, 'weights': weights, 'z_function': z_function, } return ret
def get_input_data(input_dir): file_names = ( 'alternatives.xml', 'categoriesProfiles.xml', 'credibility.xml', 'method_parameters.xml', ) trees = get_trees(input_dir, file_names) alternatives = px.getAlternativesID(trees['alternatives']) cp_tree = trees['categoriesProfiles'] categories = list( set(cp_tree.xpath('//categoriesProfiles//limits//categoryID/text()'))) categories_profiles = px.getCategoriesProfiles(trees['categoriesProfiles'], categories) profiles_names = [ p for p in cp_tree.xpath('//categoriesProfiles//alternativeID/text()') ] credibility = getAlternativesComparisons(trees['credibility'], alternatives, profiles_names) cut_threshold = px.getParameterByName(trees['method_parameters'], 'cut_threshold') check_cut_threshold(cut_threshold) ret = { 'alternatives': alternatives, 'categories_profiles': categories_profiles, 'credibility': credibility, 'cut_threshold': cut_threshold, } return ret
def get_input_data(input_dir): file_names = ( 'alternatives.xml', 'categoriesProfiles.xml', 'criteria.xml', 'performanceTable.xml', 'profilesPerformanceTable.xml', 'weights.xml', ) trees = get_trees(input_dir, file_names) alternatives = px.getAlternativesID(trees['alternatives']) criteria = px.getCriteriaID(trees['criteria']) pref_directions = px.getCriteriaPreferenceDirections(trees['criteria'], criteria) thresholds = px.getConstantThresholds(trees['criteria'], criteria) weights = px.getCriterionValue(trees['weights'], criteria) performances = px.getPerformanceTable(trees['performanceTable'], None, None) categories_profiles = get_categories_profiles_central(trees['categoriesProfiles']) profiles_performance_table = px.getPerformanceTable(trees['profilesPerformanceTable'], None, None) ret = { 'alternatives': alternatives, 'categories_profiles': categories_profiles, 'criteria': criteria, 'performances': performances, 'pref_directions': pref_directions, 'profiles_performance_table': profiles_performance_table, 'thresholds': thresholds, 'weights': weights, } return ret
def get_input_data(input_dir): file_names = ( 'alternatives.xml', 'method_parameters.xml', 'outranking.xml', ) trees = get_trees(input_dir, file_names) alternatives = px.getAlternativesID(trees['alternatives']) alternatives.sort() outranking = get_intersection_distillation(trees['outranking'], alternatives) if outranking == None: outranking = px.getAlternativesComparisons(trees['outranking'], alternatives) eliminate_cycles_method = px.getParameterByName(trees['method_parameters'], 'eliminate_cycles_method') if eliminate_cycles_method not in ['aggregate', 'cut_weakest']: raise RuntimeError("Invalid/missing method for cycle elimination.") cut_threshold = px.getParameterByName(trees['method_parameters'], 'cut_threshold') check_cut_threshold(cut_threshold) ret = { 'alternatives': alternatives, 'cut_threshold': cut_threshold, 'eliminate_cycles_method': eliminate_cycles_method, 'outranking': outranking, } return ret
def get_input_data(input_dir): file_names = ( 'alternatives.xml', 'concordance.xml', 'method_parameters.xml', 'discordance_binary.xml', ) trees = get_trees(input_dir, file_names) alternatives = px.getAlternativesID(trees['alternatives']) # we can also get alternatives from 'concordance.xml', therefore 'alternatives.xml' # can be optional - like here: # alternatives = list(set([i.text for i in trees['concordance'].findall(".//alternativeID")])) concordance = px.getAlternativesComparisons(trees['concordance'], alternatives) discordance_binary = px.getAlternativesComparisons( trees['discordance_binary'], alternatives) cut_threshold = px.getParameterByName(trees['method_parameters'], 'cut_threshold') check_cut_threshold(cut_threshold) ret = { 'alternatives': alternatives, 'concordance': concordance, 'cut_threshold': cut_threshold, 'discordance_binary': discordance_binary, } return ret
def get_input_data(input_dir): file_names = ( 'alternatives.xml', 'categories.xml', 'categoriesProfiles.xml', 'credibility.xml', 'method_parameters.xml', ) trees = get_trees(input_dir, file_names) alternatives = px.getAlternativesID(trees['alternatives']) categories = px.getCategoriesID(trees['categories']) categories_rank = px.getCategoriesRank(trees['categories'], categories) categories_profiles = get_categories_profiles_central(trees['categoriesProfiles']) credibility = getAlternativesComparisons(trees['credibility'], alternatives, categories_profiles) cut_threshold = px.getParameterByName(trees['method_parameters'], 'cut_threshold') check_cut_threshold(cut_threshold) ret = { 'alternatives': alternatives, 'categories_rank': categories_rank, 'categories_profiles': categories_profiles, 'credibility': credibility, 'cut_threshold': cut_threshold, } return ret
def get_input_data(input_dir): file_names = ( 'alternatives.xml', 'concordance.xml', 'method_parameters.xml', 'discordance_binary.xml', ) trees = get_trees(input_dir, file_names) alternatives = px.getAlternativesID(trees['alternatives']) # we can also get alternatives from 'concordance.xml', therefore 'alternatives.xml' # can be optional - like here: # alternatives = list(set([i.text for i in trees['concordance'].findall(".//alternativeID")])) concordance = px.getAlternativesComparisons(trees['concordance'], alternatives) discordance_binary = px.getAlternativesComparisons(trees['discordance_binary'], alternatives) cut_threshold = px.getParameterByName(trees['method_parameters'], 'cut_threshold') check_cut_threshold(cut_threshold) ret = { 'alternatives': alternatives, 'concordance': concordance, 'cut_threshold': cut_threshold, 'discordance_binary': discordance_binary, } return ret
def get_input_data(input_dir): file_names = ( 'alternatives.xml', 'categoriesProfiles.xml', 'concordance.xml', 'discordances.xml', ) trees = get_trees(input_dir, file_names) alternatives = px.getAlternativesID(trees['alternatives']) categories_profiles = get_categories_profiles_central( trees['categoriesProfiles']) concordance = getAlternativesComparisons(trees['concordance'], alternatives, categories_profiles) discordances = getAlternativesComparisons(trees['discordances'], alternatives, categories_profiles, partials=True) ret = { 'alternatives': alternatives, 'categories_profiles': categories_profiles, 'concordance': concordance, 'discordances': discordances, } return ret
def get_input_data(input_dir): file_names = ( 'alternatives.xml', 'performanceTable.xml', 'categoriesProfiles.xml', 'criteria.xml', 'profilesPerformanceTable.xml', ) trees = get_trees(input_dir, file_names) alternatives = px.getAlternativesID(trees['alternatives']) criteria = px.getCriteriaID(trees['criteria']) pref_directions = px.getCriteriaPreferenceDirections( trees['criteria'], criteria) thresholds = px.getConstantThresholds(trees['criteria'], criteria) performances = px.getPerformanceTable(trees['performanceTable'], None, None) profiles_performance_table = px.getPerformanceTable( trees['profilesPerformanceTable'], None, None) cp_tree = trees['categoriesProfiles'] # we need only categories profiles' names categories_profiles = [ p for p in cp_tree.xpath('//categoriesProfiles//alternativeID/text()') ] ret = { 'alternatives': alternatives, 'categories_profiles': categories_profiles, 'criteria': criteria, 'performances': performances, 'pref_directions': pref_directions, 'profiles_performance_table': profiles_performance_table, 'thresholds': thresholds, } return ret
def get_input_data(input_dir): file_names = ( 'alternatives.xml', 'categoriesProfiles.xml', 'concordance.xml', 'discordances.xml', ) trees = get_trees(input_dir, file_names) alternatives = px.getAlternativesID(trees['alternatives']) cp_tree = trees['categoriesProfiles'] # we need only categories profiles' names categories_profiles = [ p for p in cp_tree.xpath('//categoriesProfiles//alternativeID/text()') ] concordance = getAlternativesComparisons(trees['concordance'], alternatives, categories_profiles) discordances = getAlternativesComparisons(trees['discordances'], alternatives, categories_profiles, partials=True) ret = { 'alternatives': alternatives, 'categories_profiles': categories_profiles, 'concordance': concordance, 'discordances': discordances, } return ret
def get_input_data(input_dir): file_names = ( 'alternatives.xml', 'performanceTable.xml', 'categoriesProfiles.xml', 'criteria.xml', 'profilesPerformanceTable.xml', ) trees = get_trees(input_dir, file_names) alternatives = px.getAlternativesID(trees['alternatives']) criteria = px.getCriteriaID(trees['criteria']) pref_directions = px.getCriteriaPreferenceDirections(trees['criteria'], criteria) thresholds = px.getConstantThresholds(trees['criteria'], criteria) performances = px.getPerformanceTable(trees['performanceTable'], None, None) profiles_performance_table = px.getPerformanceTable(trees['profilesPerformanceTable'], None, None) cp_tree = trees['categoriesProfiles'] # we need only categories profiles' names categories_profiles = [p for p in cp_tree.xpath('//categoriesProfiles//alternativeID/text()')] ret = { 'alternatives': alternatives, 'categories_profiles': categories_profiles, 'criteria': criteria, 'performances': performances, 'pref_directions': pref_directions, 'profiles_performance_table': profiles_performance_table, 'thresholds': thresholds, } return ret
def get_input_data(input_dir): file_names = ( 'alternatives.xml', 'categoriesProfiles.xml', 'criteria.xml', 'performanceTable.xml', 'profilesPerformanceTable.xml', ) trees = get_trees(input_dir, file_names) alternatives = px.getAlternativesID(trees['alternatives']) criteria = px.getCriteriaID(trees['criteria']) pref_directions = px.getCriteriaPreferenceDirections(trees['criteria'], criteria) thresholds = px.getConstantThresholds(trees['criteria'], criteria) performances = px.getPerformanceTable(trees['performanceTable'], None, None) categories_profiles = get_categories_profiles_central(trees['categoriesProfiles']) profiles_performance_table = px.getPerformanceTable( trees['profilesPerformanceTable'], None, None ) ret = { 'alternatives': alternatives, 'categories_profiles': categories_profiles, 'criteria': criteria, 'performances': performances, 'pref_directions': pref_directions, 'profiles_performance_table': profiles_performance_table, 'thresholds': thresholds, } return ret
def get_input_data(input_dir): file_names = ( 'alternatives.xml', 'performanceTable.xml', 'categoriesProfiles.xml', 'criteria.xml', 'profilesPerformanceTable.xml', 'weights.xml', ) trees = get_trees(input_dir, file_names) alternatives = px.getAlternativesID(trees['alternatives']) criteria = px.getCriteriaID(trees['criteria']) pref_directions = px.getCriteriaPreferenceDirections( trees['criteria'], criteria) thresholds = px.getConstantThresholds(trees['criteria'], criteria) weights = px.getCriterionValue(trees['weights'], criteria) performances = px.getPerformanceTable(trees['performanceTable'], 1, 1) # we can't assume that categories will be always available as a separate # input file, therefore it's better to extract them from categoriesProfiles cp_tree = trees['categoriesProfiles'] categories = list( set(cp_tree.xpath('//categoriesProfiles//limits//categoryID/text()'))) # since we just need names of categories profiles, it's better to get them like below # - otherwise, to get 'full' categories profiles, we should use this: # categories_profiles = px.getCategoriesProfiles(trees['categoriesProfiles'], categories) categories_profiles = [ p for p in cp_tree.xpath('//categoriesProfiles//alternativeID/text()') ] # last two args to getPerformanceTable are not used at all anyway... profiles_performance_table = px.getPerformanceTable( trees['profilesPerformanceTable'], None, None) ret = { 'alternatives': alternatives, 'categories_profiles': categories_profiles, 'criteria': criteria, 'performances': performances, 'pref_directions': pref_directions, 'profiles_performance_table': profiles_performance_table, 'thresholds': thresholds, 'weights': weights, } return ret
def get_input_data(input_dir): file_names = ( 'alternatives.xml', 'performanceTable.xml', 'categoriesProfiles.xml', 'criteria.xml', 'profilesPerformanceTable.xml', 'weights.xml', ) trees = get_trees(input_dir, file_names) alternatives = px.getAlternativesID(trees['alternatives']) criteria = px.getCriteriaID(trees['criteria']) pref_directions = px.getCriteriaPreferenceDirections(trees['criteria'], criteria) thresholds = px.getConstantThresholds(trees['criteria'], criteria) weights = px.getCriterionValue(trees['weights'], criteria) performances = px.getPerformanceTable(trees['performanceTable'], 1, 1) # we can't assume that categories will be always available as a separate # input file, therefore it's better to extract them from categoriesProfiles cp_tree = trees['categoriesProfiles'] categories = list(set(cp_tree.xpath('//categoriesProfiles//limits//categoryID/text()'))) # since we just need names of categories profiles, it's better to get them like below # - otherwise, to get 'full' categories profiles, we should use this: # categories_profiles = px.getCategoriesProfiles(trees['categoriesProfiles'], categories) categories_profiles = [p for p in cp_tree.xpath('//categoriesProfiles//alternativeID/text()')] # last two args to getPerformanceTable are not used at all anyway... profiles_performance_table = px.getPerformanceTable(trees['profilesPerformanceTable'], None, None) ret = { 'alternatives': alternatives, 'categories_profiles': categories_profiles, 'criteria': criteria, 'performances': performances, 'pref_directions': pref_directions, 'profiles_performance_table': profiles_performance_table, 'thresholds': thresholds, 'weights': weights, } return ret
def get_input_data(input_dir): file_names = ( 'alternatives.xml', 'criteria.xml', 'performanceTable.xml', ) trees = get_trees(input_dir, file_names) criteria = px.getCriteriaID(trees['criteria']) pref_directions = px.getCriteriaPreferenceDirections( trees['criteria'], criteria) thresholds = px.getConstantThresholds(trees['criteria'], criteria) performances = px.getPerformanceTable(trees['performanceTable'], None, None) ret = { 'criteria': criteria, 'performances': performances, 'pref_directions': pref_directions, 'thresholds': thresholds, } return ret
def get_input_data(input_dir): file_names = ( 'alternatives.xml', 'categoriesProfiles.xml', 'concordance.xml', 'discordances.xml', ) trees = get_trees(input_dir, file_names) alternatives = px.getAlternativesID(trees['alternatives']) categories_profiles = get_categories_profiles_central(trees['categoriesProfiles']) concordance = getAlternativesComparisons(trees['concordance'], alternatives, categories_profiles) discordances = getAlternativesComparisons(trees['discordances'], alternatives, categories_profiles, partials=True) ret = { 'alternatives': alternatives, 'categories_profiles': categories_profiles, 'concordance': concordance, 'discordances': discordances, } return ret
def get_input_data(input_dir): file_names = ( 'alternatives.xml', 'categoriesProfiles.xml', 'concordance.xml', 'discordances.xml', ) trees = get_trees(input_dir, file_names) alternatives = px.getAlternativesID(trees['alternatives']) cp_tree = trees['categoriesProfiles'] # we need only categories profiles' names categories_profiles = [p for p in cp_tree.xpath('//categoriesProfiles//alternativeID/text()')] concordance = getAlternativesComparisons(trees['concordance'], alternatives, categories_profiles) discordances = getAlternativesComparisons(trees['discordances'], alternatives, categories_profiles, partials=True) ret = { 'alternatives': alternatives, 'categories_profiles': categories_profiles, 'concordance': concordance, 'discordances': discordances, } return ret