bestfit.m

来自「an implementation of best fit in matlab」· M 代码 · 共 25 行

M
25
字号
function [binAssignment,numberOfBins,occupancyInEachBin] = bestFit(binCapacity,palletDemand)

numberOfLocations = length(palletDemand); 
r = binCapacity*ones(1,numberOfLocations);
w = zeros(numberOfLocations); 

binCapacityMatrix=r;
binAssignment=w; 
    
for i=1:numberOfLocations, 
    % indices of bins still have spaces left
    idx1=find([palletDemand(i)*ones(1,numberOfLocations) <= binCapacityMatrix]);
    
    % find the index within idx1 that best fits palletDemand(i)
    [tmp,idx2]=min(binCapacityMatrix(idx1)-palletDemand(i));
    
    binAssignment(i,idx1(idx2))=1; 
    
    % update the state
    binCapacityMatrix(idx1(idx2))=tmp;  
end

occupancyInEachBin=palletDemand*binAssignment;
occupancyInEachBin(occupancyInEachBin == 0) = [];
numberOfBins=sum([occupancyInEachBin > 0]);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?