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 Knight’s Tour Problem
Java Program to Implement ConcurrentHashMap API
Spring 5 Testing with @EnabledIf Annotation
Guide to java.util.concurrent.BlockingQueue
Sử dụng CountDownLatch trong Java
DynamoDB in a Spring Boot Application Using Spring Data
Java Program to Perform Sorting Using B-Tree
OAuth2 Remember Me with Refresh Token
Java Program to Perform Encoding of a Message Using Matrix Multiplication
Java Program to Implement Floyd Cycle Algorithm
String Operations with Java Streams
Using JWT with Spring Security OAuth (legacy stack)
Java Program to Represent Graph Using Adjacency List
Injecting Prototype Beans into a Singleton Instance in Spring
Java Program to Implement LinkedTransferQueue API
RestTemplate Post Request with JSON
A Guide to Queries in Spring Data MongoDB
Converting Java Date to OffsetDateTime
Why String is Immutable in Java?
Hướng dẫn sử dụng Lớp FilePermission trong java
An Intro to Spring Cloud Task
Query Entities by Dates and Times with Spring Data JPA
Spring Boot - Unit Test Cases
Java Program to Perform Insertion in a BST
Lập trình đa luồng với CompletableFuture trong Java 8
Spring RestTemplate Error Handling
Default Password Encoder in Spring Security 5
Hướng dẫn Java Design Pattern – Strategy
Logout in an OAuth Secured Application
Spring Data – CrudRepository save() Method
Spring Security OAuth2 – Simple Token Revocation
Constructor Dependency Injection in Spring