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:
The SpringJUnitConfig and SpringJUnitWebConfig Annotations in Spring 5
Một số nguyên tắc, định luật trong lập trình
Spring Web Annotations
How to Use if/else Logic in Java 8 Streams
Implementing a Binary Tree in Java
Java Program to Implement PriorityQueue API
Java Program to add two large numbers using Linked List
Deploy a Spring Boot App to Azure
Spring Security Form Login
Java Program to Represent Graph Using Adjacency Matrix
Java Program to Implement the String Search Algorithm for Short Text Sizes
Converting a List to String in Java
Multi Dimensional ArrayList in Java
HashSet trong Java hoạt động như thế nào?
Pagination and Sorting using Spring Data JPA
Spring WebFlux Filters
Properties with Spring and Spring Boot
Getting Started with GraphQL and Spring Boot
Java Program to Implement Caesar Cypher
Convert a Map to an Array, List or Set in Java
Using a Mutex Object in Java
Java Program to Compare Binary and Sequential Search
Java Program to Represent Linear Equations in Matrix Form
Recommended Package Structure of a Spring Boot Project
Intro to Inversion of Control and Dependency Injection with Spring
Explain about URL and HTTPS protocol
Hướng dẫn kết nối cơ sở dữ liệu với Java JDBC
Convert Hex to ASCII in Java
Debugging Reactive Streams in Java
SOAP Web service: Upload và Download file sử dụng MTOM trong JAX-WS
Vector trong Java
Anonymous Classes in Java