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:
Lớp LinkedHashMap trong Java
Phương thức tham chiếu trong Java 8 – Method References
Java Program to Solve Travelling Salesman Problem for Unweighted Graph
Java Program to Implement Adjacency List
Spring Boot - Service Components
Java Program to Implement Dijkstra’s Algorithm using Priority Queue
Introduction to Java Serialization
Guide to Selenium with JUnit / TestNG
Java Program to Implement the Schonhage-Strassen Algorithm for Multiplication of Two Numbers
Java Program to Implement Sorted Circularly Singly Linked List
Testing in Spring Boot
Transactions with Spring and JPA
Java Program to Perform Stooge Sort
Java Program to Check Whether an Input Binary Tree is the Sub Tree of the Binary Tree
Java Program to Implement HashSet API
Spring Security OAuth2 – Simple Token Revocation
Performance Difference Between save() and saveAll() in Spring Data
Phương thức forEach() trong java 8
A Guide to the finalize Method in Java
Collection trong java
Introduction to Spring Data REST
Using the Map.Entry Java Class
@DynamicUpdate with Spring Data JPA
Giới thiệu Google Guice – Aspect Oriented Programming (AOP)
Introduction to Spring MVC HandlerInterceptor
Jackson – Marshall String to JsonNode
An Intro to Spring Cloud Contract
Creating a Web Application with Spring 5
A Quick Guide to Spring Cloud Consul
Spring MVC Tutorial
Java – Reader to Byte Array
Spring Data MongoDB Transactions