This action might not be possible to undo. Are you sure you want to continue?

Welcome to Scribd! Start your free trial and access books, documents and more.Find out more

Mata Kuliah : [ CF-1333 Alpro 2 ]

Disusun oleh : Khairu Rahman 5207 100 030

Jurusan Sistem Informasi Fakultas Teknologi Informasi Institut Teknologi Sepuluh Nopember Surabaya

Greedy Algorithm

Greedy Algorithm is the most popular method to solve optimation Greedy principle is : “take what you can get now!”. The example of this problem in our life are : Choose some of investment type Finding the shortest way from Bandung to Surabaya Choose a direction in University Playing card

problem.

Greedy algorithm form a solution step by step. to explain the way of greedy algorithm, next i will explain one of the problem that can be solved by greedy algorithm, there is Coin Changing Problem .

Example : I have money 500. I want to exchange with available coin. There are 50 as much as 5, 25 as much as 10, and 10 as much as 15. How much coin is needed to this exchange? The answer of this problem have two combination. There are combination and minimum combination. maximal

Solution : To understand the problem, make a table which contain some available coin with their amount. For the minimum combination the kind of available coin must be sort (descending). Here is the table :

Index 0 1 2

Coin 50 25 10

Denom 5 10 15

amount Looked for Looked for Looked for

For the maximum combination the kind of available coin must be sort (ascending). Here is the table :

Index 0 1 2

Coin 10 25 50

Denom 15 10 5

amount Looked for Looked for Looked for

This time I will explain the solution to find minimum combination. The way to find maximal combination is same. The different is in the procces of sorting coin. To find minimum combination, the first step , we take the first kind of coin (50). If after this taking the value still less than or not equals with the value of money then we must take again the coin. If the first kind of coin (50) was taken all and the sum still less than or not equals with the value of money then we take again the coin in the next kind (25). This process will looping until the sum of coin combination is equals with the money that we want to exchange. In this process we must pay attention for some case. When we taking the first kind of coin and weren’t taking all, so we have to take again the kind of this coin. If after this taking the sum is more than the value of our money, then this taking must be canceled and we take the next kind of coin. The next process is same with the previous explanation. The process is looping until the sum of coin combination equals with the money that we want to exchange.

**Pseudocode Coin Changing Problem
**

From the previous explanation of the solution coin changing problem, I can make the pseudocode. The input is the value of money that we want to exchange (n), amount kind of available coin (counter) and amount of each kind of available coin. Data about the amount of each kind of available coin must be placed into array. And must be sorting by ascending or descending, according to our needed (want to find maximal combianation or minimum combination). In my pseudocode, I prepare 3 arrays, there are coin array is used for saving the kind of available coin, denom array is used for save amount of each kind of coin, and the last array is amount array is used for saving amount of each coin that used for maximal combination or minimum combination. In this pseudocode I make 3 method . There are 2 variable as global variable. There are n variable , sum variable (used for saving the sum of coin combination that be arrangged).

Global variable n, sum

COUNT-COIN (counter, coin[] , denom[]) 1. i 0 2. sum 0 3. while i<counter 4. 5. 6. 7. amount[i] = PROSES(coin[i] , denom [i]) i++ if sum = n i = ∞

8. PRINT-COIN (counter, coin [], amount[])

PROCCESS (coin , denom) 1. counter 1 2. amount 0 3. while counter <= denom and (sum+coin) <= n 4. 5. 6. sum = sum + coin amount = counter counter++

7. return amount

PRINT-COIN (counter, coin [], amount[]) 1. for i 0 to counter 2. print coin[i] “=” amount[i]

Method COUNT-COIN. This method have 3 parameters. It is counter variable that used for saving amount kind of available coin, it was getting from user. Then coin array contain the kinds of available coin, it was getting from user. The last parameter is denom array that used for saving amount of each kind of available coin, it was getting from user. Variable i is used for saving index value. Starting from 0. variable sum is used for saving sum from coin combination that be arranged. Variable sum starting from 0. next in line 2 to 7 progrma will enter looping process. This looping process is used to fill amount array. The filling process in each amount array element were did in PROCESS METHOD, so that in line-4 I call PROCESS METHOD and sending argument coin[i] and denom[i]. Finally this method will call PRINT-COIN METHOD for print the result. In line 7 i value is unlimited if the value of sum equals n. If the value of sum equals n it means the purpose of this process completed and looping process must be stopped. I change the value of i become unlimited so that unfulfill looping condition in line-3. and looping was over.

PROCESS METHOD. This method have 2 parameters, there are coin and denom variable. This two variable is different with coin and denom variable in COUNT-COIN method. In that method coin and denom variable is array. In this method I make variable counter, with starting value 1. counter variable is different with counter variable in COUNT-COIN method. When counter = 1 it means we take one from this kind of coin checking, when counter=2 it means we take 2 coin, and further. Amount variable is used for saving amount of coin that starting value 0, amount variable in this method is different with the variable in COUNT-COIN Method. In line 3-6 program wil enter looping process. This looping process is used to find the amount that use and count some of coin combination that be arranged. The condition of this looping process is during counter value <= denom its means during the kind of coin was cheked is still available and the value from sum+coin still<=n, it means if the sum from combination that be arranged is not over n. If looping process is finished so this method will return the value from amount to COUNT-COIN Method. Method PRINT-COIN. This method is used to print the result of all process (output) . That is print amount from each of coin that will used.

- Assignment 6
- Eg Bankers
- IT data structures
- Dijkstra With Heaps
- PRACTICAL10(2)
- HW1
- prog1
- Lec-2 of data stc
- lec1-2
- 350prog1F12
- ECE242.Fall11
- Making Change Dynamic Programming
- K-metoids
- adversary oracle
- adversar
- Lecture 2
- Lecture-27-CS210-2012.pptx
- 5 - 2 - Selection Sort (659)
- Lecture 12 C++
- final.pdf
- Greedy
- Report + Submission Guideline (TT02 and TT03)
- 615.05
- Arranging Heaps
- MH3400 Lecture 1 Jan 13 2015
- L-03 Complexity Analysis 2.ppt
- Sorting Insertion Sort Merge Sort
- Binary Search Doc
- CS2251-QB
- CS2251-QB

Are you sure?

This action might not be possible to undo. Are you sure you want to continue?

We've moved you to where you read on your other device.

Get the full title to continue

Get the full title to continue listening from where you left off, or restart the preview.

scribd