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 Find the Vertex Connectivity of a Graph
Java 8 – Powerful Comparison with Lambdas
Java Web Services – Jersey JAX-RS – REST và sử dụng REST API testing tools với Postman
Enum trong java
New Features in Java 15
Java Program to Implement Network Flow Problem
Phương thức forEach() trong java 8
“Stream has already been operated upon or closed” Exception in Java
Spring MVC Content Negotiation
Hướng dẫn sử dụng biểu thức chính quy (Regular Expression) trong Java
REST Pagination in Spring
Java Program to Implement Sorted Circularly Singly Linked List
Spring WebClient Requests with Parameters
How to Implement Caching using Adonis.js 5
Spring Boot - Logging
Functional Interface trong Java 8
Sử dụng Fork/Join Framework với ForkJoinPool trong Java
Java Program to Perform Search in a BST
A Guide to the Java ExecutorService
Tính đa hình (Polymorphism) trong Java
Queue và PriorityQueue trong Java
Create Java Applet to Simulate Any Sorting Technique
Using the Not Operator in If Conditions in Java
Java Program to Implement Gauss Seidel Method
Setting the Java Version in Maven
Java – Delete a File
Spring Boot - Tracing Micro Service Logs
Java Program to Implement PriorityBlockingQueue API
Guide to the Synchronized Keyword in Java
Java Program to Implement SimpeBindings API
Hướng dẫn Java Design Pattern – Template Method
Unsatisfied Dependency in Spring