
    lh"                     2    d dl  d dlZd dlmZ ddZddZy)    )*N)productc                    t        |       D cg c]  }g  }}| dz  }t        j                  |       t        t        |            D ]Q  }|}|dk\  r8t        j                  d|dz         }||   j                  |       ||z  }|dk\  r8||   dxx   |z  cc<   S t        |      D 	cg c]  \  }}|D ]  }	|	|f  }
}}}	t        j                  |
       t        |
 \  }}|||fS c c}w c c}	}}w )Nd      
   )	rangerandomseedlen	randrangeappend	enumerateshufflezip)binsr   _packed_binsbin_sizeiremaining_sizeitemlnall_items_with_binitemspackings                /var/www/html/SchoolMeal/SchoolMeal/pds_admin_SchoolMeal/Backend/venv/lib/python3.12/site-packages/pulp/tests/bin_packing_problem.py_bin_packing_instancer       s   $T{+!2+K+czH
KK3{#$ -!!##A~':;DN!!$'d"N ! 	Arn,- .7{-COOTQQO1a&O&OO
NN%&,-NE7'8## , Ps   	C(*C-c           
      \   t        | |      \  }}}t        dt              }t        t	        |            D cg c]  }| }}t        t	        |            D cg c]  }| }}t
        j                  d|t              }	t
        j                  dt        ||      t              |t        |	      dfz  }|D ]"  |t        fd|D              d	k(  d
 fz  }$ |D ]9  }
t        |D cg c]  }||   ||
f   z   c}      ||	|
   z  k  }||d|
 fz  }; |S c c}w c c}w c c}w )N)r   r   bin_packingy)catx)indicesr$   	objectivec              3   ,   K   | ]  }|f     y w)N ).0br   items_packeds     r   	<genexpr>z-create_bin_packing_problem.<locals>.<genexpr>)   s     >Ql1a4(>s   r   
pack_item_respect_bin_size_)
r    	LpProblem
LpMinimizer
   r   
LpVariabledictsLpBinaryr   lpSum)r   r   r   r   r   probr   bin_indicesitem_indices	using_binr+   exprr,   s         `     @r   create_bin_packing_problemr;      s_   4$TJE7H]J/D#CJ/010K0$SZ01!A1L1  kx @I##W\;7X $ L 	E)k))D  V>+>>!CzRSQTEUUUV  .,GQ58l1a400GH)A,&' 	 	)!---. K- 11  Hs   	D	D$-D)
)r   )pulpr   	itertoolsr   r    r;   r)       r   <module>r?      s      $$r>   