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 Graph Coloring Algorithm
Java Program to Use the Bellman-Ford Algorithm to Find the Shortest Path
Java Program to implement Associate Array
Java Program to Implement Cubic convergence 1/pi Algorithm
Java Program to Perform Inorder Non-Recursive Traversal of a Given Binary Tree
Create a Custom Auto-Configuration with Spring Boot
Static Content in Spring WebFlux
Call Methods at Runtime Using Java Reflection
Registration – Activate a New Account by Email
Java Program to Implement a Binary Search Algorithm for a Specific Search Sequence
Spring Security Logout
Java 8 Streams peek() API
Practical Java Examples of the Big O Notation
Java Program to Implement Cartesian Tree
Java Program to Generate All Possible Combinations of a Given List of Numbers
Java Program to Implement Gale Shapley Algorithm
Java Program to Implement Uniform-Cost Search
Java Program to Check Whether Graph is DAG
Spring Boot - Thymeleaf
Java Program to Implement Threaded Binary Tree
Java Program to Implement Hash Tables with Linear Probing
Java Program to Find a Good Feedback Edge Set in a Graph
Getting Started with Stream Processing with Spring Cloud Data Flow
Java toString() Method
Java Program to Implement SimpeBindings API
ETags for REST with Spring
Upload and Display Excel Files with Spring MVC
Java Program to Check Whether an Undirected Graph Contains a Eulerian Cycle
Spring Cloud – Adding Angular
Java 8 Stream findFirst() vs. findAny()
Simultaneous Spring WebClient Calls
Java Program to Perform Cryptography Using Transposition Technique