Skip to main content
. 2025 Aug 19;18(8):1224. doi: 10.3390/ph18081224
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