This is a java program to implement a standard fractional knapsack problem. It is an algorithmic problem in combinatorial optimization in which the goal is to fill a container (the “knapsack”) with fractional amounts of different materials chosen to maximize the value of the selected materials.
Here is the source code of the Java Program to Solve the Fractional Knapsack Problem. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
//This is a sample program to implement a fractional knapsack problem import java.io.IOException; import java.util.Scanner; class Fractional_Knapsack { public static void main(String args[]) throws IOException { int i,j=0,max_qty,m,n; float sum=0,max; Scanner sc = new Scanner(System.in); int array[][]=new int[2][20]; System.out.println("Enter no of items"); n=sc.nextInt(); System.out.println("Enter the weights of each items"); for(i=0;i<n;i++) array[0][i]=sc.nextInt(); System.out.println("Enter the values of each items"); for(i=0;i<n;i++) array[1][i]=sc.nextInt(); System.out.println("Enter maximum volume of knapsack :"); max_qty=sc.nextInt(); m=max_qty; while(m>=0) { max=0; for(i=0;i<n;i++) { if(((float)array[1][i])/((float)array[0][i])>max) { max=((float)array[1][i])/((float)array[0][i]); j=i; } } if(array[0][j]>m) { System.out.println("Quantity of item number: " + (j+1) + " added is " +m); sum+=m*max; m=-1; } else { System.out.println("Quantity of item number: " + (j+1) + " added is " + array[0][j]); m-=array[0][j]; sum+=(float)array[1][j]; array[1][j]=0; } } System.out.println("The total profit is " + sum); sc.close(); } }
Output:
$ javac Fractional_Knapsack.java $ java Fractional_Knapsack Enter no of items 5 Enter the weights of each items 10 20 30 40 50 Enter the values of each items 5 4 3 2 1 Enter maximum volume of knapsack : 80 Quantity of item number: 1 added is 10 Quantity of item number: 2 added is 20 Quantity of item number: 3 added is 30 Quantity of item number: 4 added is 20 The total profit is 13.0
Related posts:
The Registration API becomes RESTful
Getting Started with Forms in Spring MVC
Java Program to Check whether Graph is Biconnected
Compare Two JSON Objects with Jackson
The Difference Between Collection.stream().forEach() and Collection.forEach()
Java Program to Check whether Graph is a Bipartite using BFS
Spring Boot - Google Cloud Platform
Hướng dẫn sử dụng Java Reflection
Guava CharMatcher
Annotation trong Java 8
Java Program to Find kth Largest Element in a Sequence
Why String is Immutable in Java?
Spring Boot Annotations
Java Program to Check whether Directed Graph is Connected using DFS
JUnit 5 @Test Annotation
Custom HTTP Header with the HttpClient
Chuyển đổi từ HashMap sang ArrayList
A Guide to EnumMap
Guide to DelayQueue
Lớp Collections trong Java (Collections Utility Class)
Java Program to Check if any Graph is Possible to be Constructed for a Given Degree Sequence
Java Program to Implement Graham Scan Algorithm to Find the Convex Hull
Spring Security – security none, filters none, access permitAll
Spring Cloud Series – The Gateway Pattern
Reversing a Linked List in Java
Spring Security Logout
Một số tính năng mới về xử lý ngoại lệ trong Java 7
Java Program to Implement the Hill Cypher
Java Program to Check if it is a Sparse Matrix
Adding Parameters to HttpClient Requests
A Guide to Iterator in Java
Java Program to Generate Random Numbers Using Middle Square Method