Re: programming::algo::bash - split list in buckets

Adrian Sevcenco <[email protected]> Tue, 2 Jul 2019 15:32:10 +0300
Newsgroups gmane.org.user-groups.rlug.offtopic
Organization CERN
Message-ID <[email protected]>
--===============0877318446081825467==
Content-Type: multipart/signed; protocol="application/pkcs7-signature";
	micalg=sha-256; boundary="------------ms050404060600080801010102"

--------------ms050404060600080801010102
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: quoted-printable

On 7/2/19 3:12 PM, Alex 'CAVE' Cernat wrote:
> deci sa zicem ca ai niste tupli de genul nume fisier, weight (sau
> lungime) si vrei sa generezi n liste de tupli de astia, astfel incat
> suma acelor weight-uri sa fie cat de cat pe acolo
>=20
> cea mai simpla metoda (nu insa si cea mai eficienta) ar fi urmatoarea:
> - ordonarea listei dupa lungime, descrescator
> - si apoi mulinezi in lista, de genul L1, L2, ... Ln, Ln, ..., L2, L1 s=
i
> iar L1, L2 ... pana termini cu lista
> nu e cea mai eficienta metoda, dar cand lista tinde spre infinit
> statistic "galetile" ar fi echilibrate
>=20
> o alta varianta mai eficienta ar fi o varianta de problema rucsacului
> (desi aia e alta mancare de peste pana la urma)
> ceva de genul: faci suma weight-urilor, faci o medie per fiecare bucket=
,
> si apoi incepi sa gasesti combinatii de tz elemente din lista astfel
> incat suma weight-urilor sa fie cat mai apropiat de media calculata
> si aici poate sa-ti dea cu virgula rau daca distributia este
> dezechilibrata, dar are mai multe sanse de reusita decat cea de mai sus=

>=20
> de obicei, cu cat dai mai multe detalii cu atat sunt mai multe sanse sa=

> gasim o solutie cat mai aproape de ce vrei tu ...
so fisierele astea le procesez pe un cluster in batchuri si ramanea o=20
long-lived tail cu joburile care aveau batchul cu fisierele cele mai mari=

in setul curent sunt 7731 fisiere cu marimi intre 357k si 931M (3.9T in=20
total)

dar m-a lamurit sir Wolf :) daca la liste pastrez atasat si marimea=20
totala din lista, urmatoarele aditii pot sa le fac de ex in punga cea=20
mai mica... e adevarat asta ar implica o gasire de minim pentru fiecare=20
aditie dar nu cred ca e vital.. asa ar duce la o buna aproximare, mai=20
ales ca dupa sortarea initiala, raman cantitati din ce in ce mai mici de =

distribuit intre galeti

Merci!
Adrian


> Alex
>=20
>=20
> On 02-Jul-19 1:36 PM, Adrian Sevcenco wrote:
>> Salut! Am o necesitate interesanta : mi-ar fi ff de folos sa pot
>> imparti o lista de fisiere in sub-colectii __aproximativ__ egale (sa
>> zic o colectie de la 4 la 8k de fisiere in 200 buckets).. problema e
>> ca nu am nici o idee de unde sa incep (ca si algorithm)
>> ca si implementare vad eu cum o fac in bash sau python, dar algoritmul=

>> e problema.
>>
>> Multumesc frumos!!
>> Adrian
>>


--------------ms050404060600080801010102--


--===============0877318446081825467==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Offtopic mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/offtopic_lists.lug.ro

--===============0877318446081825467==--