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:
Collect a Java Stream to an Immutable Collection
HttpClient Connection Management
Java Program to Check Whether it is Weakly Connected or Strongly Connected for a Directed Graph
Iterable to Stream in Java
Java Program to Perform Search in a BST
Iterating over Enum Values in Java
Java Program to Find the Vertex Connectivity of a Graph
Java Program to Implement Variable length array
HttpClient with SSL
Java Program to Find Transitive Closure of a Graph
Java Collections Interview Questions
Testing in Spring Boot
An Intro to Spring Cloud Task
Composition, Aggregation, and Association in Java
Mệnh đề Switch-case trong java
HttpAsyncClient Tutorial
Java Program to Create a Minimal Set of All Edges Whose Addition will Convert it to a Strongly Conne...
Java Program to Implement Coppersmith Freivald’s Algorithm
Extra Login Fields with Spring Security
Java List UnsupportedOperationException
Giới thiệu Google Guice – Binding
Spring Boot - Tomcat Deployment
Spring Boot Integration Testing with Embedded MongoDB
Java Program to Solve Set Cover Problem assuming at max 2 Elements in a Subset
Java Program to Find Hamiltonian Cycle in an UnWeighted Graph
Spring MVC Setup with Kotlin
Convert Character Array to String in Java
Java Program to Compute Cross Product of Two Vectors
Java Program to Implement Multi-Threaded Version of Binary Search Tree
Guide to the Synchronized Keyword in Java
Phân biệt JVM, JRE, JDK
Count Occurrences of a Char in a String