Bill Payment Optimization Algorithms. Purpose To find and/or construct algorithms that will optimize the decision process of paying bills from an account.

Slides:



Advertisements
Similar presentations
College of Information Technology & Design
Advertisements

Introduction to Computer Science 2 Lecture 7: Extended binary trees
Michael Alves, Patrick Dugan, Robert Daniels, Carlos Vicuna
Chapter 4 Retiming.
M180: Data Structures & Algorithms in Java
Your Money and and Your Math Chapter Credit Cards and Consumer Credit
Types of Algorithms.
IKI 10100: Data Structures & Algorithms Ruli Manurung (acknowledgments to Denny & Ade Azurat) 1 Fasilkom UI Ruli Manurung (Fasilkom UI)IKI10100: Lecture10.
Describing Process Specifications and Structured Decisions Systems Analysis and Design, 7e Kendall & Kendall 9 © 2008 Pearson Prentice Hall.
CS0007: Introduction to Computer Programming Array Algorithms.
Best-First Search: Agendas
Cs333/cutler Greedy1 Introduction to Greedy Algorithms The greedy technique Problems explored –The coin changing problem –Activity selection.
What is an algorithm? Informally: An Algorithm is a step by step method for solving a problem. It’s purpose is to break a larger task down so that each.
Data Structures, Spring 2006 © L. Joskowicz 1 Data Structures – LECTURE 4 Comparison-based sorting Why sorting? Formal analysis of Quick-Sort Comparison.
CS420 lecture ten BACKTRACK. Solution vectors In optimization problems, or more general in search problems, a set of choices are to be made to arrive.
Shortest path algorithm. Introduction 4 The graphs we have seen so far have edges that are unweighted. 4 Many graph situations involve weighted edges.
Kendall & KendallCopyright © 2014 Pearson Education, Inc. Publishing as Prentice Hall 9 Kendall & Kendall Systems Analysis and Design, 9e Process Specifications.
Chapter 13 Binary Search Trees. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Chapter Objectives Define a binary search tree abstract.
Tirgul 13. Unweighted Graphs Wishful Thinking – you decide to go to work on your sun-tan in ‘ Hatzuk ’ beach in Tel-Aviv. Therefore, you take your swimming.
Chapter 12 Trees. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Chapter Objectives Define trees as data structures Define the terms.
DAST 2005 Week 4 – Some Helpful Material Randomized Quick Sort & Lower bound & General remarks…
Copyright © Cengage Learning. All rights reserved. CHAPTER 11 ANALYSIS OF ALGORITHM EFFICIENCY ANALYSIS OF ALGORITHM EFFICIENCY.
Graphs & Graph Algorithms 2 Fawzi Emad Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
C++ Programming: Program Design Including Data Structures, Third Edition Chapter 20: Binary Trees.
Adapted from slides by Marie desJardins
Copyright © 2015, 2011, and 2007 Pearson Education, Inc. 1 Chapter 12 Business and Consumer Loans Section 1 Open-End Credit and Charge Cards.
Simple Interest And Methods of Payment. * Whenever money is borrowed, the borrower (an individual, organisation or community) pays the lender (a bank.
Computability Reports. More examples. Homework: Optimization. Other follow- ups. Start to plan presentation.
Analysis of Algorithms
CPSC 171 Introduction to Computer Science 3 Levels of Understanding Algorithms More Algorithm Discovery and Design.
Section 7-3 Computing the Costs of Credit
1 Chapter 1 Analysis Basics. 2 Chapter Outline What is analysis? What to count and consider Mathematical background Rates of growth Tournament method.
10.4 How to Find a Perfect Matching We have a condition for the existence of a perfect matching in a graph that is necessary and sufficient. Does this.
CSCE350 Algorithms and Data Structure Lecture 17 Jianjun Hu Department of Computer Science and Engineering University of South Carolina
Copyright © 2013, 2009, 2005 Pearson Education, Inc. 1 5 Systems and Matrices Copyright © 2013, 2009, 2005 Pearson Education, Inc.
Describing Process Specifications and Structured Decisions Systems Analysis and Design, 7e Kendall & Kendall 9 © 2008 Pearson Prentice Hall.
CS261 – Recitation 5 Fall Outline Assignment 3: Memory and Timing Tests Binary Search Algorithm Binary Search Tree Add/Remove examples 1.
The Lower Bounds of Problems
Discrete Structures Lecture 12: Trees Ji Yanyan United International College Thanks to Professor Michael Hvidsten.
Algorithms April-May 2013 Dr. Youn-Hee Han The Project for the Establishing the Korea ㅡ Vietnam College of Technology in Bac Giang.
CSC 211 Data Structures Lecture 13
Union-find Algorithm Presented by Michael Cassarino.
Optimizing Pheromone Modification for Dynamic Ant Algorithms Ryan Ward TJHSST Computer Systems Lab 2006/2007 Testing To test the relative effectiveness.
UNIT 5.  The related activities of sorting, searching and merging are central to many computer applications.  Sorting and merging provide us with a.
3-4 Notes. Proving a Journal Page 1)Add each of the amount columns 2)Add the debit column totals, and then add the credit column totals. 3)Verify that.
Union-Find  Application in Kruskal’s Algorithm  Optimizing Union and Find Methods.
Foundation of Computing Systems
M180: Data Structures & Algorithms in Java Trees & Binary Trees Arab Open University 1.
Graphs and MSTs Sections 1.4 and 9.1. Partial-Order Relations Everybody is not related to everybody. Examples? Direct road connections between locations.
BALANCING YOUR CHECK REGISTRY LESSON 3. SHORT CLASS DISCUSSION… What does it mean to “balance” something?? ______________________________________________________________.
SPANNING TREES Lecture 21 CS2110 – Fall Nate Foster is out of town. NO 3-4pm office hours today!
Lecture 9COMPSCI.220.FS.T Lower Bound for Sorting Complexity Each algorithm that sorts by comparing only pairs of elements must use at least 
1. Searching The basic characteristics of any searching algorithm is that searching should be efficient, it should have less number of computations involved.
MA/CSSE 473 Day 30 Optimal BSTs. MA/CSSE 473 Day 30 Student Questions Optimal Linked Lists Expected Lookup time in a Binary Tree Optimal Binary Tree (intro)
Introduction to NP Instructor: Neelima Gupta 1.
THE NATURE OF FINANCIAL MANAGEMENT Copyright © Cengage Learning. All rights reserved. 11.
MA/CSSE 473 Days Optimal linked lists Optimal BSTs.
Spanning Trees Dijkstra (Unit 10) SOL: DM.2 Classwork worksheet Homework (day 70) Worksheet Quiz next block.
LINKED LISTS.
Andreas Klappenecker [partially based on the slides of Prof. Welch]
Greedy Technique.
Graphs & Graph Algorithms 2
Types of Algorithms.
Arrays .
Greedy Algorithms.
Types of Algorithms.
CSC 380: Design and Analysis of Algorithms
Applications of Arrays
Invitation to Computer Science 5th Edition
Basic Search Methods How to solve the control problem in production-rule systems? Basic techniques to find paths through state- nets. For the moment: -
Presentation transcript:

Bill Payment Optimization Algorithms

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 } Optimized 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

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

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

Path Finding

Path Finding Example

Attempt #1 Multiple Insertion Sorts Attempt #1 Multiple Insertion Sorts 1.We sorted bill list by each attribute. (amount, late fee, due date, critical date, credit effect, need of service) 2.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. 3.The sum of each bill’s list of ratings is divided by it’s length to get the average rating. 4.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 rating Allowed us to test how close Attempt #1 was to being optimized by comparing which bills would be paid for either algorithm Attempt #2 was an improvement. Attempt #2 Path Finding

1.start at index 0 2.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. 1.if it can be paid, add to list paid bills 1.add weight of bill to weightRemoved variable 2.else, iterate to next bill and repeat 3.if weightRemaining(totalListWeight - weightRemoved) is less than previous stored value 1.Store weightRemaining as indicator of optimized list thus far 4.index ++

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

*

Testing