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:
Exploring the Spring Boot TestRestTemplate
Introduction to Java Serialization
Java IO vs NIO
Spring Boot - Google OAuth2 Sign-In
Java – InputStream to Reader
A Guide to JUnit 5
The Difference Between Collection.stream().forEach() and Collection.forEach()
Java Program to Implement ConcurrentHashMap API
Tạo ứng dụng Java RESTful Client với thư viện Retrofit
Getting Started with GraphQL and Spring Boot
Marker Interface trong Java
Introduction to Spring Data JPA
Jackson Annotation Examples
Logout in an OAuth Secured Application
Spring JDBC
Java List UnsupportedOperationException
Java Program to Implement Fibonacci Heap
Notify User of Login From New Device or Location
Hướng dẫn Java Design Pattern – MVC
Java Program to Check Whether a Directed Graph Contains a Eulerian Cycle
Java Program to Implement Repeated Squaring Algorithm
Java CyclicBarrier vs CountDownLatch
What is Thread-Safety and How to Achieve it?
Guide to CopyOnWriteArrayList
Giới thiệu Google Guice – Aspect Oriented Programming (AOP)
Java Program to Describe the Representation of Graph using Adjacency Matrix
Java Program to Perform Matrix Multiplication
Send email with JavaMail
Cơ chế Upcasting và Downcasting trong java
Java Program to Implement Singly Linked List
Java Program to Implement Red Black Tree
Java Program to Implement Patricia Trie