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:
Tính đóng gói (Encapsulation) trong java
Java 8 StringJoiner
Java Program to Generate N Number of Passwords of Length M Each
Java Program to Apply DFS to Perform the Topological Sorting of a Directed Acyclic Graph
Java Program to Implement the Checksum Method for Small String Messages and Detect
Java Program to Implement Hash Tree
Rest Web service: Filter và Interceptor với Jersey 2.x (P1)
Java Program to Implement the One Time Pad Algorithm
Hướng dẫn sử dụng Java Generics
Using Spring @ResponseStatus to Set HTTP Status Code
Java Program to Implement Levenshtein Distance Computing Algorithm
Login For a Spring Web App – Error Handling and Localization
Giới thiệu JDBC Connection Pool
Java Program to Implement Attribute API
Java Program to Generate Random Numbers Using Middle Square Method
A Guide to TreeSet in Java
Spring MVC Tutorial
Java Program to Sort an Array of 10 Elements Using Heap Sort Algorithm
JPA/Hibernate Persistence Context
Java Program to Construct an Expression Tree for an Infix Expression
Java Program to Perform Stooge Sort
A Guide to LinkedHashMap in Java
Spring Boot with Multiple SQL Import Files
Java Program to Find Inverse of a Matrix
Java Stream Filter with Lambda Expression
String Processing with Apache Commons Lang 3
Java – String to Reader
Java 8 – Powerful Comparison with Lambdas
Java 8 Stream findFirst() vs. findAny()
Java Program to Implement Binary Search Tree
Intro to Inversion of Control and Dependency Injection with Spring
Java Convenience Factory Methods for Collections