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 Perform the Unique Factorization of a Given Number
Introduction to the Functional Web Framework in Spring 5
Spring 5 Testing with @EnabledIf Annotation
Java Program to Implement Sorted List
Spring Data – CrudRepository save() Method
Java Program to Implement Knight’s Tour Problem
Guide to Guava Table
Guide to ThreadLocalRandom in Java
Running Spring Boot Applications With Minikube
Tính trừu tượng (Abstraction) trong Java
Vector trong Java
Spring Webflux with Kotlin
File Upload with Spring MVC
Quick Guide on Loading Initial Data with Spring Boot
Use Liquibase to Safely Evolve Your Database Schema
A Guide To UDP In Java
Java Program to Implement Repeated Squaring Algorithm
Comparing Objects in Java
A Guide to JPA with Spring
Java Program to Describe the Representation of Graph using Adjacency List
Java Program to Implement Aho-Corasick Algorithm for String Matching
ClassNotFoundException vs NoClassDefFoundError
Spring Security OAuth2 – Simple Token Revocation
The Difference Between Collection.stream().forEach() and Collection.forEach()
Java 8 Stream findFirst() vs. findAny()
Introduction to Spring Data JDBC
Guide To CompletableFuture
Mệnh đề if-else trong java
How to Store Duplicate Keys in a Map in Java?
Spring Boot Tutorial – Bootstrap a Simple Application
Spring Boot - Google Cloud Platform
Guide to the Synchronized Keyword in Java