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 Aho-Corasick Algorithm for String Matching
wait() and notify() Methods in Java
Spring Boot - Introduction
Spring Boot - Tomcat Deployment
Create a Custom Exception in Java
Set Interface trong Java
Java Program to Implement the MD5 Algorithm
Prevent Cross-Site Scripting (XSS) in a Spring Application
Spring WebClient vs. RestTemplate
Java Program to Delete a Particular Node in a Tree Without Using Recursion
New Features in Java 11
Tìm hiểu cơ chế Lazy Evaluation của Stream trong Java 8
Spring Cloud AWS – Messaging Support
How To Serialize and Deserialize Enums with Jackson
Java Program to Implement CopyOnWriteArrayList API
Mệnh đề Switch-case trong java
Giới thiệu SOAP UI và thực hiện test Web Service
Understanding Memory Leaks in Java
Using JWT with Spring Security OAuth
Java Program to implement Bit Matrix
Display Auto-Configuration Report in Spring Boot
Introduction to Using FreeMarker in Spring MVC
Database Migrations with Flyway
Java Program to Generate All Possible Subsets with Exactly k Elements in Each Subset
Lập trình hướng đối tượng (OOPs) trong java
SOAP Web service: Authentication trong JAX-WS
Java Program to Implement Meldable Heap
Injecting Prototype Beans into a Singleton Instance in Spring
Java Program to Implement LinkedHashMap API
Java Program to Check whether Graph is a Bipartite using BFS
Java Program to Implement the String Search Algorithm for Short Text Sizes
A Guide to LinkedHashMap in Java