Contoh Greedy

 class Solution:

    def __init__(self,upgrade,cost,risk_reduction,poin):
        self.upgrade = upgrade
        self.cost = cost
        self.risk_reduction = risk_reduction
        self.poin = poin



def greedy(list_upgrade):
    total_cost = 0
    total_risk_reduction = 0
    unused_budget = 100
    selected_upgrades = []

    for i in list_upgrade:
        if total_cost + i.cost <= 100:
            selected_upgrades.append(i)
            total_cost += i.cost
            total_risk_reduction += i.risk_reduction
       
    unused_budget = 100 - total_cost
    return total_cost, total_risk_reduction, unused_budget, selected_upgrades


list_upgrade = [
    Solution("Digital Temperature Monutoring", 20, 120, 6),
    Solution("Insulted food-delivery container", 40, 200, 5),
    Solution("Blast Chiller", 60, 240, 4),
    Solution("Additional washing and sterillization station", 15, 75, 5),
    Solution("Water filtration upgrade", 30, 130, 4.33),
    Solution("backup generator", 50, 180, 3.60)

]
list_upgrade.sort(key=lambda x: x.poin, reverse=True)
(total_cost, total_risk_reduction, unused_budget, selected_upgrades) = greedy(list_upgrade)

print(f"Total Cost: {total_cost}")
print(f"Total Risk Reduction: {total_risk_reduction}")
print(f"Unused Budget: {unused_budget}")
print("Selected Upgrades:")
for upgrade in selected_upgrades:
    print(f"Upgrade: {upgrade.upgrade}, Cost: {upgrade.cost}, Risk Reduction: {upgrade.risk_reduction}, Poin: {upgrade.poin}")

Komentar

Postingan populer dari blog ini

Analisis Data Menggunakan Orange

Pengenalan Bahasa C

Pengalaman Test ELPT ITB