大的C#产品和供应商矩阵(排列组合)

问题描述 投票:-1回答:1

简单的问题!

我有4种产品的订单 P1,P2,P3,P4,我有3个供应商S1,S2,S3,每个供应商为每种产品提供一个价格,供应商之间有距离,每个供应商可能有0到4个我的产品。

           Product1       Product2    Product3    Product4

供应商1....... 12$ ................. 18$ ............. 22$ .............10$ .............. 运费 40元

供应商2....... 12$ ................. 16$ ............ 19$ ............. 15$ .............. 运费20元

供应商3....... 11$ ................. 20$ ............ 20$ .............. 20$ .............. 运费 30元

如何才能以最低的价格买到这种产品,并减少旅行次数.我发现总的状态是供应商^产品,在我的简单案例中,3^4=81个状态发生了。

P1S1,P2S1,P3S1,P4S1=62元。

P1S1,P2S1,P3S1,P4S2=67元。

...

.所有可能性的清单

...

示例截图

供应商之间有运输成本.我的卡车在我的公司.卡车必须知道去哪里(哪个供应商).以及在每个供应商必须采取什么产品。

所以我们必须找到 哪些供应商 必须满足和 什么产品 (更低的价格)必须从该供应商那里得到。

所以81个状态,每个状态都有价格.如果我有10个产品和10个供应商,我将有10^10=10,000,000,000个状态,它需要至少20GB的内存和lang时间来创建这个矩阵。在c#中

首先,我创建所有的国家,然后找到其中的最佳价格。这种方法需要千兆字节的内存和大量的CPU使用和小时的计算是否有一个更好的方法(最佳算法我的目标是找到我的卡车必须满足的供应商名单,以及哪些产品必须从每个供应商,也有供应商之间的运输成本。

最好的价格,更少的行程。

我的应用程序最终必须给我一些东西,如。

P1S1,P2S1,P3S2,P4S2=62$。

这意味着卡车必须去供应商S1拿p1,p2产品,然后去供应商S2拿p3 & p4,因为这是基于价格和行程数的最佳方式。

之后,我可以优化我的C#代码,或者改用GPU进行计算。

c# algorithm matrix permutation
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.