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 Apply DFS to Perform the Topological Sorting of a Directed Acyclic Graph
Consumer trong Java 8
Tạo số và chuỗi ngẫu nhiên trong Java
Java Convenience Factory Methods for Collections
Java Program to Construct an Expression Tree for an Postfix Expression
HashSet trong Java hoạt động như thế nào?
Java Program to Find ith Largest Number from a Given List Using Order-Statistic Algorithm
Optional trong Java 8
Spring MVC Setup with Kotlin
Java NIO2 Path API
Java Program to Implement Sorted Circular Doubly Linked List
Spring Boot - Thymeleaf
Java Program to Implement Variable length array
Hashtable trong java
Java Program to Implement Sorted List
Ép kiểu trong Java (Type casting)
Spring Boot - Hystrix
Spring Boot Actuator
Guide to WeakHashMap in Java
Jackson Annotation Examples
Tạo ứng dụng Java RESTful Client không sử dụng 3rd party libraries
Java Program to Implement Floyd Cycle Algorithm
Spring MVC Async vs Spring WebFlux
Java Program to Implement LinkedHashMap API
Apache Tiles Integration with Spring MVC
Java Program to Generate All Possible Combinations of a Given List of Numbers
Creating a Web Application with Spring 5
Java – String to Reader
Mapping Nested Values with Jackson
Introduction to Using FreeMarker in Spring MVC
Java Program to Implement Euclid GCD Algorithm
Java Program to Search for an Element in a Binary Search Tree