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:
REST Web service: Upload và Download file với Jersey 2.x
Java Program to Generate All Possible Subsets with Exactly k Elements in Each Subset
Send email with SMTPS (eg. Google GMail)
Configuring a DataSource Programmatically in Spring Boot
Java Program to Implement Bresenham Line Algorithm
Java Program to Solve any Linear Equations
Java Program to Find the Median of two Sorted Arrays using Binary Search Approach
Java Program to Perform Partial Key Search in a K-D Tree
Lập trình đa luồng trong Java (Java Multi-threading)
Java Program to Find the Connected Components of an UnDirected Graph
Java Program to Solve Travelling Salesman Problem for Unweighted Graph
Giới thiệu Google Guice – Binding
Java 8 Predicate Chain
Control Structures in Java
Error Handling for REST with Spring
Bootstrap a Web Application with Spring 5
Java Program to Implement Slicker Algorithm that avoids Triangulation to Find Area of a Polygon
Guide to Apache Commons CircularFifoQueue
Spring Boot - Eureka Server
Quick Guide to the Java StringTokenizer
Java Program to Implement Graph Structured Stack
Java Program to Implement LinkedList API
Lớp Collectors trong Java 8
Queue và PriorityQueue trong Java
Java Program to Find Minimum Element in an Array using Linear Search
Biểu thức Lambda trong Java 8 – Lambda Expressions
Java Program to Implement Hash Tables Chaining with Doubly Linked Lists
More Jackson Annotations
Java Perform to a 2D FFT Inplace Given a Complex 2D Array
Java Program to Implement Range Tree
Java Program to Implement Pagoda
Spring Boot: Customize Whitelabel Error Page