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:
Simplify the DAO with Spring and Java Generics
Guide to Spring 5 WebFlux
Converting a Stack Trace to a String in Java
Integer Constant Pool trong Java
Java Map With Case-Insensitive Keys
Multipart Upload with HttpClient 4
Array to String Conversions
Giới thiệu java.io.tmpdir
Java Program to Apply DFS to Perform the Topological Sorting of a Directed Acyclic Graph
Java Program to Implement RoleList API
Java Program to Implement Extended Euclid Algorithm
Java Program to Find MST (Minimum Spanning Tree) using Prim’s Algorithm
Multi Dimensional ArrayList in Java
Java Program to Perform the Unique Factorization of a Given Number
Java Program to Implement Binomial Heap
Java Program to Implement Disjoint Sets
Java Program to Implement D-ary-Heap
Debugging Reactive Streams in Java
Java – Delete a File
A Guide to Java HashMap
Java Program to Implement Fibonacci Heap
Test a REST API with Java
How to Get a Name of a Method Being Executed?
Prevent Brute Force Authentication Attempts with Spring Security
Functional Interfaces in Java 8
Concatenating Strings In Java
Java Program to Check Whether a Directed Graph Contains a Eulerian Path
Introduction to Spring Cloud OpenFeign
Hướng dẫn Java Design Pattern – Iterator
Java String Conversions
Java Program to Find the Shortest Path Between Two Vertices Using Dijkstra’s Algorithm
Spring Boot With H2 Database