| Algorithm A1 Drug Recommendation Model Algorithm for Greedy Strategies |
|
Require: current_drugs, combo_freq_dict, risk_dict, gene_map, α, β, N Ensure: Top_N_Recommendations 1: Begin 2: Normalize current_drugs 3: all_drugs ← union of all drugs in combo_freq_dict 4: candidate_drugs ← all_drugs − current_drugs 5: scored_candidates ← empty list 6: for each drug_c in candidate_drugs do 7: extended_combo ← current_drugs ∪ {drug_c} 8: freq_score ← 0 9: for each subset in combinations of extended_combo with size 2 to 3 do 10: freq_score ← freq_score + combo_freq_dict.get(subset, 0) 11: end for 12: risk_score ← 0 13: for each drug_d in current_drugs do 14: pair ← {drug_c, drug_d} 15: risk ← risk_dict.get(pair, “Unknown”) 16: risk_score ← risk_score + penalty_value(risk) 17: end for 18: overlap_score ← 0 19: for each drug_d in current_drugs do 20: overlap_score ← overlap_score + size of (gene_map[drug_c] ∩ gene_map[drug_d]) 21: end for 22: total_score ← α× freq_score + β × overlap_score + risk_score 23: Append (drug_c, total_score) to scored_candidates 24: end for 25: Sort scored_candidates in descending order of total_score 26: Top_N_Recommendations ← top N elements from scored_candidates 27: End |