This is a Java Program to implement First fit Decreasing Bin Packing algorithm. The First Fit Decreasing (FFD) strategy, operates by first sorting the items to be inserted in decreasing order by their sizes, and then inserting each item into the first bin in the list with sufficient remaining space.
Here is the source code of the Java Program to Implement First Fit Decreasing for 1-D Objects and M Bins. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
//This is a java program to implement first fit decreasing for 1D objects using M bins import java.util.Scanner; public class First_Fit_Decreasing_Bin_Packing { public static void main(String args[]) { System.out .println("BIN - PACKING Algorithm 1D Objects(First Fit Decreasing)"); System.out.println("Enter the number of items in Set: "); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); System.out.println("Enter " + n + " items:"); int[] a = new int[n]; for (int i = 0; i < n; i++) a[i] = sc.nextInt(); System.out.println("Enter the bin size: "); int size = sc.nextInt(); int[] sequence = sort(a); binPacking(sequence, size, n); sc.close(); } public static void binPacking(int[] a, int size, int n) { int binCount = 0; int[] binValues = new int[n]; for (int i = 0; i < binValues.length; i++) binValues[i] = size; for (int i = 0; i < n; i++) for (int j = 0; j < binValues.length; j++) { if (binValues[j] - a[i] >= 0) { binValues[j] -= a[i]; break; } } for (int i = 0; i < binValues.length; i++) if (binValues[i] != size) binCount++; System.out .println("Number of bins required using first fit decreasing algorithm is:" + binCount); } static int[] sort(int[] sequence) { // Bubble Sort descending order for (int i = 0; i < sequence.length; i++) for (int j = 0; j < sequence.length - 1; j++) if (sequence[j] < sequence[j + 1]) { sequence[j] = sequence[j] + sequence[j + 1]; sequence[j + 1] = sequence[j] - sequence[j + 1]; sequence[j] = sequence[j] - sequence[j + 1]; } return sequence; } }
Output:
$ javac First_Fit_Decreasing_Bin_Packing.java $ java First_Fit_Decreasing_Bin_Packing BIN - PACKING Algorithm for 1D Objects(First Fit Decreasing) Enter the number of items in Set: 9 Enter 9 items: 4 1 2 5 3 2 3 6 3 Enter the bin size: 6 Number of bins required using first fit decreasing algorithm is:5
Related posts:
Java Program to Perform Searching Based on Locality of Reference
Spring Data JPA and Null Parameters
Java Program to Implement ArrayList API
Finding the Differences Between Two Lists in Java
Call Methods at Runtime Using Java Reflection
Java Program to Implement Radix Sort
Validations for Enum Types
Enum trong java
Java Program to Find the Vertex Connectivity of a Graph
Hướng dẫn Java Design Pattern – Intercepting Filter
Một số nguyên tắc, định luật trong lập trình
Java Program to implement Array Deque
Redirect to Different Pages after Login with Spring Security
Java Program to Implement HashTable API
Add Multiple Items to an Java ArrayList
Java Program to Implement Patricia Trie
A Guide to JUnit 5
How to Get the Last Element of a Stream in Java?
Java Program to Implement Find all Back Edges in a Graph
REST Pagination in Spring
Partition a List in Java
Java Program to Implement Efficient O(log n) Fibonacci generator
Luồng Daemon (Daemon Thread) trong Java
Spring Boot - Exception Handling
Java Program to Implement Depth-limited Search
New Stream Collectors in Java 9
OAuth2 Remember Me with Refresh Token
Queue và PriorityQueue trong Java
Java Program to Perform Stooge Sort
Tìm hiểu về xác thực và phân quyền trong ứng dụng
Custom Exception trong Java
Spring Boot - Rest Template