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:
Netflix Archaius with Various Database Configurations
Java Program to Implement Threaded Binary Tree
HttpClient Basic Authentication
How to Get a Name of a Method Being Executed?
Java Program to Find the Nearest Neighbor Using K-D Tree Search
Java Program to Implement Dijkstra’s Algorithm using Queue
Java Program to Find Basis and Dimension of a Matrix
Converting Between a List and a Set in Java
Control the Session with Spring Security
Java Program to Print the Kind of Rotation the AVL Tree is Undergoing
Java Program to Implement Brent Cycle Algorithm
Cơ chế Upcasting và Downcasting trong java
Serve Static Resources with Spring
Giới thiệu về Stream API trong Java 8
Date Time trong Java 8
Mapping Nested Values with Jackson
The Difference Between map() and flatMap()
Java Program to Find the Vertex Connectivity of a Graph
Sử dụng CountDownLatch trong Java
Creating a Web Application with Spring 5
Java Program to Implement AVL Tree
Java Convenience Factory Methods for Collections
Java Program to implement Priority Queue
Tìm hiểu về Web Service
Understanding Memory Leaks in Java
LinkedHashSet trong java
Getting Started with GraphQL and Spring Boot
Java Program to Compute the Volume of a Tetrahedron Using Determinants
RestTemplate Post Request with JSON
New Features in Java 10
Registration – Activate a New Account by Email
Default Password Encoder in Spring Security 5