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 Evaluate an Expression using Stacks
Guide to @ConfigurationProperties in Spring Boot
How to Get the Last Element of a Stream in Java?
Guide to Java OutputStream
Java Program to Implement Threaded Binary Tree
Spring Boot - Thymeleaf
Comparing Two HashMaps in Java
How to use the Spring FactoryBean?
REST Web service: Basic Authentication trong Jersey 2.x
Java Program to Implement LinkedBlockingQueue API
Spring Cloud – Securing Services
List Interface trong Java
Show Hibernate/JPA SQL Statements from Spring Boot
Daemon Threads in Java
Spring Security Authentication Provider
Partition a List in Java
Java Program to Implement the Monoalphabetic Cypher
Hướng dẫn Java Design Pattern – Mediator
Java Program to Perform Naive String Matching
Java Program to Implement Borwein Algorithm
Java Program to Implement Sorted Circularly Singly Linked List
XML-Based Injection in Spring
Primitive Type Streams in Java 8
Filtering and Transforming Collections in Guava
Java Program to Implement RoleList API
Hướng dẫn Java Design Pattern – Dependency Injection
Java Program to Sort an Array of 10 Elements Using Heap Sort Algorithm
Java Program to Implement Miller Rabin Primality Test Algorithm
Java Program to Find Nearest Neighbor Using Linear Search
Tính đa hình (Polymorphism) trong Java
Converting Between a List and a Set in Java
Java Program to Describe the Representation of Graph using Incidence List