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:
Java Program to implement Bi Directional Map
Từ khóa this và super trong Java
Consuming RESTful Web Services
REST Web service: Tạo ứng dụng Java RESTful Client với Jersey Client 2.x
Comparing Objects in Java
Sorting Query Results with Spring Data
Java Program to Find Basis and Dimension of a Matrix
Hướng dẫn Java Design Pattern – Mediator
Java Multi-line String
Java Program to Check whether Directed Graph is Connected using DFS
Hướng dẫn tạo và sử dụng ThreadPool trong Java
A Guide to Java 9 Modularity
Java Program to Implement Karatsuba Multiplication Algorithm
Java – InputStream to Reader
Call Methods at Runtime Using Java Reflection
A Guide to EnumMap
New in Spring Security OAuth2 – Verify Claims
Java Program to Compute the Area of a Triangle Using Determinants
Tính đóng gói (Encapsulation) trong java
New Features in Java 11
Java Program to Apply DFS to Perform the Topological Sorting of a Directed Acyclic Graph
Working With Maps Using Streams
Giới thiệu luồng vào ra (I/O) trong Java
Introduction to Project Reactor Bus
Initialize a HashMap in Java
Java Program to Check whether Graph is a Bipartite using 2 Color Algorithm
Java Program to Find Hamiltonian Cycle in an UnWeighted Graph
Lớp Collections trong Java (Collections Utility Class)
Java Program to Implement Interpolation Search Algorithm
Java Program to Implement LinkedBlockingDeque API
Consumer trong Java 8
A Guide to HashSet in Java