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:
Hướng dẫn Java Design Pattern – Command
Guava CharMatcher
Java Program to Implement HashTable API
Zipping Collections in Java
Composition, Aggregation, and Association in Java
Java Program to Implement Pollard Rho Algorithm
Java Program to Implement Sorted Singly Linked List
Disable Spring Data Auto Configuration
Spring Webflux with Kotlin
Server-Sent Events in Spring
Java Program to Perform Stooge Sort
Hướng dẫn Java Design Pattern – Facade
Hướng dẫn Java Design Pattern – Dependency Injection
How to Read a File in Java
A Quick JUnit vs TestNG Comparison
Performance Difference Between save() and saveAll() in Spring Data
Java Program to Perform Encoding of a Message Using Matrix Multiplication
Java Program to Compute DFT Coefficients Directly
Java Program to Find the Vertex Connectivity of a Graph
Implementing a Runnable vs Extending a Thread
Sử dụng CyclicBarrier trong Java
XML-Based Injection in Spring
Hướng dẫn Java Design Pattern – Abstract Factory
Java Program to Implement PrinterStateReasons API
Spring REST with a Zuul Proxy
Java Program to Implement CountMinSketch
Easy Ways to Write a Java InputStream to an OutputStream
Hướng dẫn Java Design Pattern – DAO
CharSequence vs. String in Java
Java – InputStream to Reader
Java Program to Generate All Possible Subsets with Exactly k Elements in Each Subset
Hướng dẫn Java Design Pattern – Decorator