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:
Spring Boot - Quick Start
Quick Guide to Spring Controllers
Java Program to Find the Longest Path in a DAG
Biểu thức Lambda trong Java 8 – Lambda Expressions
Java Program to Perform Finite State Automaton based Search
Different Ways to Capture Java Heap Dumps
Java Program to implement Array Deque
New Features in Java 8
A Guide to JPA with Spring
Java 9 Stream API Improvements
Java Program to Implement Fermat Factorization Algorithm
Java Program to Implement VList
Spring 5 and Servlet 4 – The PushBuilder
Map to String Conversion in Java
Java Program to Perform Cryptography Using Transposition Technique
Mệnh đề Switch-case trong java
HttpClient 4 Cookbook
Java Program to Check Whether a Given Point is in a Given Polygon
Spring Boot with Multiple SQL Import Files
Enum trong java
Luồng Daemon (Daemon Thread) trong Java
An Intro to Spring Cloud Zookeeper
Java Program to Implement Cartesian Tree
Join and Split Arrays and Collections in Java
Checked and Unchecked Exceptions in Java
Java Program to Remove the Edges in a Given Cyclic Graph such that its Linear Extension can be Found
Receive email by java client
Biến trong java
Guide to @JsonFormat in Jackson
Mảng (Array) trong Java
Java Program to Generate Random Partition out of a Given Set of Numbers or Characters
Java Program to Generate All Possible Combinations Out of a, b, c, d, e