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:
Lập trình đa luồng trong Java (Java Multi-threading)
Hướng dẫn Java Design Pattern – Interpreter
Tìm hiểu cơ chế Lazy Evaluation của Stream trong Java 8
Hướng dẫn Java Design Pattern – MVC
Java Program to Implement Sorted List
Spring Boot Tutorial – Bootstrap a Simple Application
Java Program to Implement Hash Tables
Java Program to Find Strongly Connected Components in Graphs
Java Program to Implement Adjacency List
Spring @RequestMapping New Shortcut Annotations
Introduction to Spring Cloud Stream
Java Program to Implement the Hill Cypher
Simplify the DAO with Spring and Java Generics
Spring Boot - Logging
Introduction to Apache Commons Text
Java String to InputStream
Java Program to Find Number of Spanning Trees in a Complete Bipartite Graph
Hướng dẫn tạo và sử dụng ThreadPool trong Java
Send email with authentication
Java Program to Create the Prufer Code for a Tree
Class Loaders in Java
Java Program to Implement Segment Tree
Java Program to Implement Sorted Singly Linked List
Implementing a Binary Tree in Java
Tạo chương trình Java đầu tiên sử dụng Eclipse
How to use the Spring FactoryBean?
Java Program to Find Transpose of a Graph Matrix
Java Program to Perform Preorder Non-Recursive Traversal of a Given Binary Tree
Java Program to Implement the RSA Algorithm
Spring Boot: Customize the Jackson ObjectMapper
Java Program to Implement Sorted Circularly Singly Linked List
Hướng dẫn sử dụng Java Annotation