









Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
It includes some basic idea of Bin Packing problem
Typology: Lecture notes
1 / 16
This page cannot be seen from the preview
Don't miss anything!










Name: Md Samiul Islam Student ID: 1505018 Registration No: 000007373 Session: 2015- 3rd Year 2nd Semester Dept. of CSE , BRUR.
Name: Sanjoy Kumar Saha Assistant Professor Department of Computer Science & Engineering Begum Rokeya University, Ranpur.
One of the most well-known packing problems is bin-packing, in which there are multiple containers (called bins) of equal capacity. Unlike the multiple knapsack problem, the number of bins is not fixed. Instead, the goal is to find the smallest number of bins that will hold all the items. Given n items with sizes s1, s2, ..., sn such that 0 ≤ si ≤ 1 for 1 ≤ i ≤ n, pack them into the fewest number of unit capacity bins. Problem is NP-hard (NP-Complete for the decision version). There is no known polynomial time algorithm for its solution, and it is conjectured that none exists.
Filing recycle bins. Loading trucks. Mix tapes.
Given the high quality solutions returned by these approximation algorithms, why bother trying to find optimal solutions? There are at least four reasons. In some applications, it may be important to have optimal solutions. In particular, with small numbers of bins, even a single extra bin is relatively expensive. In addition, being able to determine the optimal solutions to problem instances allows us to more accurately gauge the quality of approximate solutions. For example, the above comparisons of FFD and BFD solutions to optimal solutions were only possible because we could compute the optimal solutions. Another reason is that an anytime algorithm for finding optimal solutions, such as those presented in this paper, can make use of any additional time available to find better solutions than those returned by BFD or FFD, which run very fast in practice. Finally, optimal bin packing is an interesting computational challenge, and may lead to insights applicable to other problems.
We can always find a lower bound on minimum number of bins required. The lower bound can be given as Min no. of bins >= Ceil ((Total Weight) / (Bin Capacity)) This problem is a NP Hard problem and finding an exact minimum number of bins takes exponential time. Following are approximate algorithms for this problem.
There are two type of algorithms for using solution of bin packing problem: Online Algorithms Offline Algorithms
Approximation Ratios Apporoximation Algorithm: Not an optimal solution, but with some performance ratio guarantee for a given problem instance, I (e.g., no worst than twice the optimal) Approx. Ratio = Alg(I)/Opt(I) Next Fit Approximation Ratio Theorem: Let M be the number of bins required to pack a list I of items optimally.Next Fit will use at most 2M bins. Proof: Let’s (Bi) be the sum of sizes of the items assingned to bin Bi in the Next Fit Solution. For any two adjacent bins (Bj and Bj+1), we know that s(Bj) + s(Bj+1) > 1 Let k be the number of bins used by Next Fit for list I. We prove the case when k is even (odd case is similar). Next Fit Lower Bound
Scan the bins in order and place the new item in the first bin that is large enough to hold it. A new bin is created only when an item does not fit in the previous bins. When processing the next item, scan the previous bins in order and place the item in the first bin that fits. Start a new bin only if it does not fit in any of the existing bins. The above implementation of First Fit requires O(n2) time, but First Fit can be implemented in O(n Log n) time using Self-Balancing Binary Search Trees. If M is the optimal number of bins, then First Fit never uses more than 1.7M bins. So First-Fit is better than Next Fit in terms of upper bound on number of bins. First-Fit (FF) Approx. Ratio Let M be the optimal number of bins required to pack a list I of items. Then First Fit never uses more than ⌈1.7M⌉. There exist sequences such that First Fit uses 1.6666…(M) bins. Proof:
Figure 4: Scrum
Originally developed by Mary and Tom Poppendieck, Lean Software Development is an iterative software development methodology that owes a lot of its standards and practices to the Lean Enterprise development, and other organizations like Toyota. Lean methodology works on the following principles: Eliminating the waste Intensifying learning Choosing as late as permissible Delivering as fast as possible Strengthening the team Building integrity Seeing the whole Lean methodology underscores the speed and productivity of improvement work process, and depends on quick and solid input amongst software engineers and clients (Testbytes, 2020) Kanban: This methodology is used by the organizations that focus on continual delivery without overburdening the development group. Like Scrum, Kanban is a procedure intended to enable groups to cooperate all the more successfully. It works on three basic principles that include:
Work flow for the day i.e. seeing every item as informative in context of each other Limiting the amount of work in progress (WIP)- defining the expected work delivery from every team at a particular time Enhanced flow i.e. taking up the next thing on priority in backlog once the current task is completed (Testbytes, 2020) Figure 5: Kanban
Extreme Programming or XP, originally written as Kent Beck, has risen as a standout amongst the well- known and disputable agile methodologies. A disciplined way to deliver high quality software products, XP advances high client association, rapid feedback loops, ceaseless testing, nonstop planning, and close collaboration to deliver software products frequently. The first XP formula depends on four basic principles that include simplicity, communication, criticism, and mettle. As well as twelve supporting practices that include planning the game, minor releases, customer acceptance testing, simple design, pair programming, test-driven development, re-factoring, continuous integration, collective code ownership, coding standards, metaphor and sustainable pace (Testbytes, 2020) ) Extreme programming is aimed for small and medium sized teams between three and maximum of two project members. The physical environment is also important, communication and coordination between project members should be allowed at all time. (Abrahamsson, 2002)
Figure 6: Extreme Programming
The Crystal methodology is a standout amongst the most lightweight, versatile ways of software development. Comprising of a number of agile methodologies like Crystal Clear, Crystal Yellow, Crystal Orange and others, its exceptional qualities are driven by various factors like group estimate, framework criticality, and undertaking needs. (Testbytes, 2020) Figure 7: Crystal Dynamic Systems Development Method (DSDM): Dating back to 1994, Dynamic Systems Development Method methodology was developed to meet the need of delivering an industry standard project delivery framework. It has advanced to a level of developing into a tool that can act as a foundation for planning, managing, executing, and scaling agile process and iterative software development projects. This tool depends on nine key rules that include business needs/esteem, dynamic client association, enabled groups, visit conveyance, coordinated testing, and partner cooperation. The major focus of DSDM before delivering the final product is to ensure that a product is fit to meet the business needs. One must try and complete all the critical works and project using this methodology.
It is also important to include some of the lesser important tasks in each time-box so that they can be replaced with higher-priority work as and when required. (Testbytes, 2020) Figure 8: Dynamic Systems Development.
Originally developed and articulated by Jeff De Luca, Feature-Driven Development (FDD) is a client centric and pragmatic software process. As the name indicates, features as use cases are used to the Rational Unified Process and user stories are to Scrum, which are the primary source of requirements and the primary input into your planning efforts. Driven on the basis of model, FDD is a short-iteration process that begins by setting up an overall model shape followed by a series of two-week “design by feature, build by feature” iterations. FDD follows eight practices to complete the entire development process: Domain Object Modeling Developing by Feature Component/Class Ownership Feature Teams Inspections Configuration Management Regular Builds Visibility of progress and results
Agile Methodology. (2008). Retrieved from Agile Methodology. 2008, October 23. Retrieved March 27, 2013, from Agile Methodology: http://agilemethodology.org/: http://agilemethodology.org/ Geeksforgeeks. (2021). https://www.geeksforgeeks.org/difference-between-traditional-and-agile-software- development/. Retrieved from https://www.geeksforgeeks.org/difference-between-traditional-and- agile-software-development/ Guru99, 2. (n.d.). https://www.guru99.com/agile-scrum-extreme-testing.html. Retrieved from https://www.guru99.com/agile-scrum-extreme-testing.html Naidu. (2002). Naidu, S. S. (n.d.). Agile Software Development. Navneetjha, 2. (2012). Navneetjha. (2012, July 12). Agile Methodology - A Brief Overview. Retrieved March 27, 2013, from HubPages: http://navneetjha.hubpages.com/hub/Agile-Methodology-A-Brief- Overview. Retrieved from http://navneetjha.hubpages.com/hub/Agile-Methodology RELEVANT, 2. (2021). https://relevant.software/blog/agile-software-development-lifecycle-phases- explained/. Retrieved from https://relevant.software/blog/agile-software-development-lifecycle- phases-explained/ Tay. (2008). Tay, L. (2008, December 10). Agile Methodology: A Software Development Process Framework. Testbytes. (2020). Retrieved from https://www.testbytes.net/blog/agile-software-development- methodologies/: https://www.testbytes.net/blog/agile-software-development-methodologies/ Trivikram. (2011). Trivikram. (2011, May 4). Principles of Agile Methodology. Retrieved March 26, 2013, from That Technology: http://www.thatstechnology.com/software-testing/principles-of-agile- methodology. Retrieved from http://www.thatstechnology.com/software-testing/principles-of-agile- methodology WATERFALL vs. AGILE METHODOLOGY, 2. (n.d.). WATERFALL vs. AGILE METHODOLOGY. (2008, January 4). Retrieved March 22, 2013, from Agile Introduction For Dummies: http://agileintro.wordpress.com/2008/01/04/waterfall- vs-agile-methodology/. Williams. (2007). Williams, L. (2007). A Survey of Agile Development Methodologies.