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:
Getting a File’s Mime Type in Java
Apache Commons Collections SetUtils
How to Delay Code Execution in Java
Set Interface trong Java
ArrayList trong java
Java Program to Generate Random Numbers Using Middle Square Method
Spring Security Logout
Vấn đề Nhà sản xuất (Producer) – Người tiêu dùng (Consumer) và đồng bộ hóa các luồng trong Java
Java Switch Statement
Java Program to Implement Shoelace Algorithm
Java Program to Implement LinkedTransferQueue API
Semaphore trong Java
Java 8 Collectors toMap
Spring Security Custom AuthenticationFailureHandler
Java Program to Find Number of Articulation points in a Graph
Java Program to Implement Queue
Static Content in Spring WebFlux
Java Program to Find the Vertex Connectivity of a Graph
Java Program to Implement Gauss Seidel Method
Java Program to Implement Hash Tables Chaining with Binary Trees
Hướng dẫn Java Design Pattern – Adapter
Java Program to Implement an Algorithm to Find the Global min Cut in a Graph
The StackOverflowError in Java
Guide to the Java TransferQueue
Spring 5 WebClient
Java Program to Find kth Smallest Element by the Method of Partitioning the Array
Java Program to Represent Graph Using Adjacency List
Testing in Spring Boot
Base64 encoding và decoding trong Java 8
Date Time trong Java 8
Batch Processing with Spring Cloud Data Flow
Lớp Arrarys trong Java (Arrays Utility Class)