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 Sparse Array
Tạo chương trình Java đầu tiên sử dụng Eclipse
Spring Security Custom AuthenticationFailureHandler
Guide to CountDownLatch in Java
Java Program to Implement ConcurrentSkipListMap API
So sánh Array và ArrayList trong Java
Java Program to Implement the Program Used in grep/egrep/fgrep
Java Program to Implement Threaded Binary Tree
Join and Split Arrays and Collections in Java
Java Program to implement Circular Buffer
Java Program to Find the Minimum Element of a Rotated Sorted Array using Binary Search approach
Java Program to Implement Suffix Tree
Java Program to implement Dynamic Array
Java Program to Check the Connectivity of Graph Using BFS
Java Program to Check Whether an Input Binary Tree is the Sub Tree of the Binary Tree
Java Optional as Return Type
Quick Guide to Spring Bean Scopes
Guide to Guava Table
Guava CharMatcher
Call Methods at Runtime Using Java Reflection
Java Program to Implement Leftist Heap
Introduction to Thread Pools in Java
Lập trình mạng với java
Java Program to Implement Shunting Yard Algorithm
Java Program to Implement LinkedBlockingDeque API
Java Program to Check Whether a Weak Link i.e. Articulation Vertex Exists in a Graph
Map Interface trong java
Java Program to Implement Min Hash
Java Program to Implement Graph Structured Stack
Java Program to Implement the One Time Pad Algorithm
Collection trong java
Java Program to Implement Interpolation Search Algorithm