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:
Java Program to Implement Patricia Trie
Map to String Conversion in Java
How to Read HTTP Headers in Spring REST Controllers
Hướng dẫn Java Design Pattern – Proxy
Getting a File’s Mime Type in Java
Hướng dẫn sử dụng Java Reflection
Java Program to Implement Graph Structured Stack
Getting Started with Custom Deserialization in Jackson
Java Convenience Factory Methods for Collections
REST Web service: HTTP Status Code và xử lý ngoại lệ RESTful web service với Jersey 2.x
Java Program to Implement the Checksum Method for Small String Messages and Detect
Giới thiệu Google Guice – Injection, Scope
The “final” Keyword in Java
Spring Boot - Enabling HTTPS
Remove HTML tags from a file to extract only the TEXT
Uploading MultipartFile with Spring RestTemplate
Java Program to Perform the Sorting Using Counting Sort
Posting with HttpClient
Java Program to Perform Encoding of a Message Using Matrix Multiplication
Guide to BufferedReader
Convert Character Array to String in Java
Login For a Spring Web App – Error Handling and Localization
New Features in Java 12
TreeSet và sử dụng Comparable, Comparator trong java
Java equals() and hashCode() Contracts
Spring JDBC
Generic Constructors in Java
Java Optional as Return Type
Guide to UUID in Java
Spring Boot - Cloud Configuration Client
Guava – Join and Split Collections
Java Map With Case-Insensitive Keys