/
Bill Payment Optimization Algorithms Bill Payment Optimization Algorithms

Bill Payment Optimization Algorithms - PowerPoint Presentation

tawny-fly
tawny-fly . @tawny-fly
Follow
345 views
Uploaded On 2019-11-08

Bill Payment Optimization Algorithms - PPT Presentation

Bill Payment Optimization Algorithms John Watts Ian Smeigh Purpose To find andor construct algorithms that will optimize the decision process of paying bills from an account that does not have the money required to pay all bills ID: 764450

bills list attempt bill list bills bill attempt paid finding path balance complexity worst case solution account space index

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Bill Payment Optimization Algorithms" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Bill Payment Optimization Algorithms John Watts Ian Smeigh

Purpose To find and/or construct algorithms that will optimize the decision process of paying bills from an account that does not have the money required to pay all bills.

Formal Definition of Solution Considered optimized when paying bills in suggested order is completed resulting in the highest balance possible left in the account balance. a = balance in monetary unit b = sum or total of bills needed to be payed in monetary unit n = number of bills in b c = bill each bill exists in b such that c 1 …… c n-1 + c n = b Perfect situation is that b remains a subset of a. set of d = each element of b that is not in a for all possible solutions. {d 1 , d 2 ,……,d n-1 , d n } O ptimized solution is found when the cardinality of d for a particular solution is ≤ the cardinality of all other possible solutions.

Algorithms We Used Insertion Sort Path Finding Algorithm

Insertion Sort Worst case time complexity = Worst case space complexity = Worst case auxiliary space complexity =  

Insertion Sort Example List = [4,5,6,2,3,7,2,1,7,8] InsertionSort (List) 4 5 6 2 3 7 2 1 7 8 4 5 6 2 3 7 2 1 7 8 4 5 6 2 3 7 2 1 7 8 2 4 5 6 3 7 2 1 7 8 2 3 4 5 6 7 2 1 7 82 3 4 5 6 7 2 1 7 82 2 3 4 5 6 7 1 7 81 2 2 3 4 5 6 7 7 81 2 2 3 4 5 6 7 7 81 2 2 3 4 5 6 7 7 8

Path Finding Each node is a possible solution. Each edge is a bill that could be paid. The bill’ s weight ( edge w eight ) determines whether it can be paid with the balance left in the account. Goal: to visit the most nodes with balance available

Worst case time complexity = For each node, all other nodes have to be visited . Worst case space complexity = A list of bills is entered with an balance for the account. The solution will store a list of bills paid and a weight remaining. For each iteration, a list of bills paid, and the variable weight remaining is stored Worst case auxiliary space complexity =   Path Finding

Path Finding Example

Attempt #1 Multiple Insertion Sorts We sorted bill list by each attribute. ( amount, late fee, due date, critical date, credit effect, need of service ) Each time a sorted list of bills is created, the rating of each bill ( 1 to n ) is appended to each bill’s list of ratings. The sum of each bill’s list of ratings is divided by it’s length to get the average rating.The bills are then sorted by their average rating to determine the order in which to pay them.

Attempt #1 Problems This attempt was purely a system that rated the bills regarding their importance through the weighting system we developed. This created a valid list of importance but did not compute the optimal solution due to the fact that it disregarded the balance from which the bills are being paid.

Added to Attempt #1 by using the list of bills that are sorted by average ratingAllowed us to test how close Attempt #1 was to being optimized by comparing which bills would be paid for either algorithmAttempt #2 was an improvement. Attempt # 2 Path Finding

Attempt # 2 Path Finding start at index 0 verify if bill at index can be paid by checking if the amount of the bill is less than or equal to the available balance in the account. if it can be paid, add to list paid bills add weight of bill to weightRemoved variableelse, iterate to next bill and repeatif weightRemaining(totalListWeight - weightRemoved) is less than previous stored valueStore weightRemaining as indicator of optimized list thus farindex ++

Improved Attempt #2Create list of indicesShuffle list of indices Implement path finding algorithm with index[0] of shuffled list of indices index ++ Attempt #3 Randomized Path Finding

To shuffle list of indices we used Python’s shuffle method from it’s random classPython uses the Fisher-Yates shuffle algorithm which is of complexity * The more times this is completed, the closer we get to optimization   Attempt #3 Randomized Path Finding * http ://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle

Testing