Sziasztok!
Egy matematikai problémán akadtam fenn a napokban. A gondom a következő:
Vannak eltérő mennyiségű különböző sűrűségű folyadékaim. Csak egymással keverhetők. Az lenne a célom, hogy megtudjam mennyi a legtöbb kikeverhető adott x sűrűségű folyadékom.
Az én elméletem szerint:
Sűrűség szerint sorbarendezem őket. Addig számolom az átlagos sűrűségüket lépésről lépésre, míg a célsűrűség alatt vagyok, utána csak a következőből (legsűrűbből) adok még hozzá. Tehát
C-célsűrűség
Mln - legsűrűbb nélküli mennyiség
Msz - további szükséges mennyiség
M1, M2 - mennyiségek
S1, S2 - sűrűségek
Sx - következő(legnagyobb) szűrűségű
C*(Mln+Msz)=M1*S1+M1*S1+...+Sx*Msz
innen már kifejezhető a mennyiség
Remélem érthető voltam... Kíváncsi lennék mi a véleményetek, hogyan lehetne hatékonyan megoldani, merre tapogatózzak.
Várom az ötleteket, előre is kösz!
- 6650 megtekintés
Hozzászólások
Operációkutatás témakörben nézelődj.
Ha papíron szeretnéd megoldani (vagy saját programot írni rá), akkor a "lehetséges kanonikus alakú feladat" megoldását keresd. Ha csak megoldás kell gyorsan, akkor Excelben (Solver) vagy OOo-ban is meg lehet csinálni.
- A hozzászóláshoz be kell jelentkezni
Kösz az infót, így már megindulhatok valamerre... Különben egy meglévő alkalmazásomat kellene kibővítenem ezzel a funckióval.
- A hozzászóláshoz be kell jelentkezni
Szívesen segítenék, de nem értem:
a) Hány folyadékod van?
b) Hányat tehetsz bele ezekből a keverékbe?
c) Az egyes folyadékokból, gondolom, egy-egy maximális mennyiség adott. De ennél kevesebbet tehetsz bele, ha akarsz?
- A hozzászóláshoz be kell jelentkezni
a)változó, van mikor 3 van mikor 8-9 (azért többnyire 5-6 körül mozog)
b)mindet felhasználhatom
c)adott egy maximális mennyiség, amiből kevesebbet is felhasználhatok
- A hozzászóláshoz be kell jelentkezni
Klasszikus operaciokutatasi temakor, keveresi feladat. Igy keress ra, van irodalom boven a temakorben.
Ahogy elottem ajanlottak, konnyeden megoldhato ez a feladat is Excelben, vagy Oo-ban, gondolom ennel pontosabb megoldas nem szukseges, ha igen, tudok ajanlani egy-ket celprogramot.
- A hozzászóláshoz be kell jelentkezni
Letoltod az LPsolve-ot, es kulso programkent vagy libkent meghivod. Linearis egyenlet/egyenlotlensegrendszereket old meg.
Ha m1,m2,m3, stb a tomeg, max1,max2,max3 a maximalis mennyiseg, amid van, m a celfolyadek tomege, r1,r2,r3, stb. a suruseg, r a celsuruseg, akkor:
max m
m1<=max1
m2<=max2
m3<=max3
m1>=0
m2>=0
m3>=0
m1+m2+m3=m
r1*m1+r2*m2+r3*m3=r*m (r-eket behelyettesited)
ezutan megoldatod az m-ekre, es megkapsz mindent.
Nyilvan ha akarod, lekodolhatod te is, csak minek..
Amugy a linearis programozas temakoreben is nezelodhetsz, egy tobbe-kevesbe hatekony algoritmus:
http://en.wikipedia.org/wiki/Simplex_algorithm
--
What's the difference between the Israeli navy and Somali pirates?
If you negotiate with Somali pirates,you can prevent them from murdering their victims. - sickipedia
- A hozzászóláshoz be kell jelentkezni
Feltételezheted hogy keveréskor a térfogatok pontosan összeadódnak?
Mert ez általában nem igaz a folyadékokra, gondolj pl. arra az esetre amikor homokot keversz a kavics közé: bár a tömeg összeadódik a térfogat nem...
- A hozzászóláshoz be kell jelentkezni
-
- A hozzászóláshoz be kell jelentkezni
Jelen esetben nem áll fenn ez a probléma.
Egyelőre a LPsolve tűnik a legjobb megoldásnak, ha végre lesz egy kis időm nekiállok próbálgatni.
- A hozzászóláshoz be kell jelentkezni
Ha LP (nem MIP) solverek kellenek, akkor a barátaid:
lp_solve (beteg, mert az ubuntu/kubuntu 9.10/10.04 alapból tartalmazza)
glpk (benne a glpsol bináris, van mindenféle unix/w.* OS alá)
clp (www.coin-or.org:443, ubuntu repó-synapticban cbc részstringre keress rá!)
olvasható formátumot (lp-t, cplex lp-t csak az elsõ kettõ tud kezelni, a harmadik csak a de facto ipari standard MPS formátumot)
- A hozzászóláshoz be kell jelentkezni
Így első ránézésre wxMaxima vagy R nyelven (cran.r-project.org) a limSolve package - de ezt a csomagot soha nem használtam.
---------------------------------------------------------------------------
Környezetvédelmi nyilatkozat: Ez a hozzászólás kizárólag reciklált elektronok felhasználásával íródott.
- A hozzászóláshoz be kell jelentkezni