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:
Join and Split Arrays and Collections in Java
An Introduction to ThreadLocal in Java
Java Program to Create a Minimal Set of All Edges Whose Addition will Convert it to a Strongly Conne...
Java Program to Implement Adjacency List
Request a Delivery / Read Receipt in Javamail
Java Scanner hasNext() vs. hasNextLine()
Spring Security OAuth2 – Simple Token Revocation
Extract network card address
Posting with HttpClient
A Guide to LinkedHashMap in Java
Java Program to find the maximum subarray sum O(n^2) time(naive method)
Java Program to Show the Duality Transformation of Line and Point
Java Program to Check whether Graph is a Bipartite using 2 Color Algorithm
Basic Authentication with the RestTemplate
Java Program to Implement CountMinSketch
Dockerizing a Spring Boot Application
Java Program to Check Whether an Undirected Graph Contains a Eulerian Path
Hướng dẫn Java Design Pattern – Flyweight
Guide to the Java Queue Interface
Java Collections Interview Questions
Java Program to Implement Circular Doubly Linked List
Error Handling for REST with Spring
Java Program to Implement ConcurrentHashMap API
Spring Data – CrudRepository save() Method
Java – Random Long, Float, Integer and Double
Java Program to Perform Matrix Multiplication
Runnable vs. Callable in Java
Iterable to Stream in Java
Java Program to Generate All Subsets of a Given Set in the Lexico Graphic Order
Java Program to Implement Binomial Tree
Java Program to Implement LinkedList API
Examine the internal DNS cache