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 Security Form Login
Guide to @ConfigurationProperties in Spring Boot
Java Program to Find the Nearest Neighbor Using K-D Tree Search
Quick Guide to Spring Bean Scopes
A Guide to EnumMap
Java Program to Check if a Given Set of Three Points Lie on a Single Line or Not
“Stream has already been operated upon or closed” Exception in Java
Java Program to Check if an UnDirected Graph is a Tree or Not Using DFS
Java Program to Implement Hash Tree
Java Program to Implement Hash Tables Chaining with List Heads
New Features in Java 11
Java Convenience Factory Methods for Collections
Introduction to Spliterator in Java
How to Remove the Last Character of a String?
Setting the Java Version in Maven
Java Program to Implement the RSA Algorithm
Getting Started with Stream Processing with Spring Cloud Data Flow
Java Program to Implement Adjacency Matrix
Spring Boot Annotations
Java Program to Find Location of a Point Placed in Three Dimensions Using K-D Trees
Java Program for Douglas-Peucker Algorithm Implementation
Java Program to Implement Segment Tree
Quick Guide on Loading Initial Data with Spring Boot
Using Optional with Jackson
Java Program to Implement the Binary Counting Method to Generate Subsets of a Set
Java Program to Represent Linear Equations in Matrix Form
Java Program to find the maximum subarray sum using Binary Search approach
Hướng dẫn Java Design Pattern – Composite
A Guide To UDP In Java
Java Program to Implement CountMinSketch
Introduction to Using FreeMarker in Spring MVC
Assertions in JUnit 4 and JUnit 5