Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Request now

Reply
Anonymous
Not applicable

Knapsack Problem

Hi, 

 

I need to implement the Knapsack Problem.

I know there are many algorithms in Java code. It's possible to replicate it in PowerBI? If yes, how?

 

Here an example of what I need.

 

 

class Knapsack {

    public static void main(String[] args) throws Exception {

        int val[] = {10, 40, 30, 50};

        int wt[] = {5, 4, 6, 3};

        int W = 10;

        System.out.println(knapsack(val, wt, W));

   }



    public static int knapsack(int val[], int wt[], int W) {

        //Get the total number of items.

        //Could be wt.length or val.length. Doesn't matter

        int N = wt.length;


        //Create a matrix.

        //Items are in rows and weight at in columns +1 on each side

        int[][] V = new int[N + 1][W + 1];

        //What if the knapsack's capacity is 0 - Set

        //all columns at row 0 to be 0

        for (int col = 0; col <= W; col++) {            V[0][col] = 0;

        }



        //What if there are no items at home.

        //Fill the first row with 0
        for (int row = 0; row <= N; row++) {            V[row][0] = 0;
        }

        for (int item=1;item<=N;item++){


            //Let's fill the values row by row

            for (int weight=1;weight<=W;weight++){

                //Is the current items weight less

                //than or equal to running weight

                if (wt[item-1]<=weight){

//Given a weight, check if the value of the current

//item + value of the item that we could afford

//with the remaining weight is greater than the value

//without the current item itself                    V[item][weight]=Math.max (val[item-1]+V[item-1][weight-wt[item-1]], V[item-1][weight]);
                }

                else {

//If the current item's weight is more than the

//running weight, just carry forward the value

//without the current item                    V[item][weight]=V[item-1][weight];
                }
            }

        }

        //Printing the matrix

        for (int[] rows : V) {

            for (int col : rows) {

                System.out.format("%5d", col);
            }
            System.out.println();
        }

        return V[N][W];

    }

}

 

 

Thanks

Clara

1 ACCEPTED SOLUTION
Icey
Community Support
Community Support

Hi @Anonymous ,

Maybe you can try these:

Creating Machine Learning models in Power BI

Open Source PowerBI REST API for Java

Rest api usage with Java.

 

Best Regards,

Icey

 

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

1 REPLY 1
Icey
Community Support
Community Support

Hi @Anonymous ,

Maybe you can try these:

Creating Machine Learning models in Power BI

Open Source PowerBI REST API for Java

Rest api usage with Java.

 

Best Regards,

Icey

 

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Helpful resources

Announcements
November Power BI Update Carousel

Power BI Monthly Update - November 2025

Check out the November 2025 Power BI update to learn about new features.

Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors
Top Kudoed Authors