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:
Truyền giá trị và tham chiếu trong java
Lập trình hướng đối tượng (OOPs) trong java
A Guide to the ViewResolver in Spring MVC
@Order in Spring
Read an Outlook MSG file
Call Methods at Runtime Using Java Reflection
Guide to CountDownLatch in Java
Java Program to Implement Direct Addressing Tables
Java Program to Implement Multi-Threaded Version of Binary Search Tree
Java Program to implement Bit Set
Tránh lỗi ConcurrentModificationException trong Java như thế nào?
Command-Line Arguments in Java
An Introduction to Java.util.Hashtable Class
Running Spring Boot Applications With Minikube
Removing all Nulls from a List in Java
Versioning a REST API
Hướng dẫn sử dụng Printing Service trong Java
Java Program to Implement Weight Balanced Tree
Spring Boot - Logging
A Guide to the Java ExecutorService
Java Program to Implement Dijkstra’s Algorithm using Queue
“Stream has already been operated upon or closed” Exception in Java
Java Program to Implement Splay Tree
Using the Map.Entry Java Class
Spring Boot - Scheduling
Giới thiệu về Stream API trong Java 8
Java Program to Implement Find all Forward Edges in a Graph
Java Program to Implement RoleUnresolvedList API
Spring Security – security none, filters none, access permitAll
Tính kế thừa (Inheritance) trong java
Spring Security OAuth2 – Simple Token Revocation
Java Program to Find kth Largest Element in a Sequence