Problema |
Bine ati venit ca musafir! ( Logare | Inregistrare )
Problema |
26 Jan 2006, 02:58 PM
Mesaj
#1
|
|
Cronicar Grup: Moderator Mesaje: 2.132 Inscris: 16 June 04 Din: Bucuresti Forumist Nr.: 3.862 |
Salutare!
Nu sunt sigur că aici e locul potrivit să postez (dacă nu e... rog moderatorul să mute acest topic; sau sa-l īnchidă). Am următoarea problemă: Īntr-o grădină sunt n aspersoare. Pentru fiecare aspersor cunoaştem poziţia lui (x[i],y[i]) şi debitul de apă Q[i] (i = 1..n). Robinetul de alimentare cu apă se află la (x[0],y[0]) şi de-acolo trebuie să tragem o reţea arborescentă de conducte care să distribuie apa la toate cele n aspersoare. Dar trebuie să minimizăm costurile reţelei. Ştim că metrul liniar de conductă are un cost c proporţional cu radicalul debitului pe care-l suportă acea conductă: c = k*sqrt(Q). Deci dacă pe o anume distanţă două tronsoane de debite Q1 şi Q2 se pot contopi īntr-un singur tronson de debit Q1+Q2, costul va fi mai mic (radicalul sumei e mai mic de cāt suma radicalilor). Īntrebarea e: care ar fi un algoritm pentru determinarea arborelui de cost minim? Iată o schiţă explicativă: Īn imagine se văd conductele mai groase (şi mai scumpe) care cumulează mai mult debit, pe care apoi īl īmpart către conducte tot mai subţiri, către consumatorii finali. Am considerat că toţi consumatorii au acelaşi debit -- e o simplificare OK pentru o primă abordare. (Evident, problema e teoretică -- aspersoarele şi grădina sunt doar metafore.) Are cineva ceva idei? a -------------------- Trebuie să facem ceea ce credem că e bine, dar nu trebuie să credem că ceea ce facem e bine.
|
|
|
28 Jan 2006, 10:59 AM
Mesaj
#2
|
|||||||||||||||||||||
Umil servitor la Han Grup: Moderator Mesaje: 4.051 Inscris: 2 December 03 Forumist Nr.: 1.345 |
Draga Amenhotep, Imi cer scuze ca nu am fost prea clar in exprimare....
Da, asta am spus, caci in sursa nu se reduce debitul..., acolo neavand consumator...
Corect, caci acela este minimul local si trebuie profitat de el Atentie: Te rog sa observi, ca, coordonatele punctului sursa sunt foarte importante, si deci trebuie luate in calcul....
Corect, si algoritmul se reia plecand acum de la faptul ca noul "centru de debit" este acum sursa, si se reduc consumatorii cu 1. Atentie: daca de la "centrul de debit" exista mai multi consumatori, aflati la distante egale de el, atunci se traseaza toate(casi sunt minime locale), si apoi se reduce numarul consumatorilor corespunzator..., la fel si debitele...
Pai nu devine noul punct, noua sursa pentru punctele ramase? Ce ai lasat in urma este deja trecut...
Scuze... am omis ca ai notat sursa cu 0... E chestiune de notatie... Poti la fel de bine sa pleci si cu sursa ca fiind nodul 1 , sau 10..., sau a, x... (oricum definesti siruri de genul n[i])
Eu m-am gandit, ca pentru o implementare mai usoara a algoritmului, sa consideri si sursa ca nod, pentru calcularea centrului de masa...Iar in calculul consumului, consumul acesteia ar fi =0...deci debitul ramane neschimbat dupa el...
Eu nu am propus deloc ca, conducta groasa sa mearga pana in "centrul de debit" al consumatorilor... Ar fi o eroare matematica.... Deci, mie mi se pare ca treaba e foarte simpla: In figura ta, avem un triunghi in care varful de jos e sursa... Nu trebuie decat sa-i calculezi centrul de masa ca la geometrie, dar modificat putin cu formulele ce ti le-am dat, caci intervine debitul....(adica, ca si cum, distantele ar fi influentate de ponderile consumului)
Nu, e cam gresit ce spui... Matematic, ca sa fie eficient, sa plece ambii consumatori chiar din sursa, in forma de "V", ar trebui ca acestia sa fie situati la infinit unul de altul... Cand centrul de masa al unui triunghi este chiar intr-un varf al lui? Cand celelalte doua varfuri ar fi situate pe aceeasi dreapta cu el, dar de parti diferite? Cand centrul de masa al unui triunghi cade chiar la mijlocul segementului dintre doua varfuri? Cand doua varfuri sunt situate in acelasi punct, adica suprapuse... Algoritmul,asa cum l-am dat eu, functioneaza si in cazul general si in cazuri particulare, cu debite egale, dar si cu debite exagerat de diferite... Te rog sa-l analizezi mai atent... Observatie: Algoritmul este teoretic...Practic, evident, mai intervin multe lucruri, cum ar fi: numarul de imbinari (reductii), coturi, suporti, prinderi etc, care sunt foarte scumpe... Deci e alta mancare de peste... Evident, se pot introduce si acestea in algoritm si atunci o sa avem (poate), un traseu cu totul diferit decat cel ce nu le ia in calcul...
Eu nu am mai lucrat cu fractalii de vreo 8 ani... Reusisem sa fac lucruri destul de complexe cu ei... Sunt buni la modelarea unor forme naturale, cum ar fi chiar arborii sau neuronii, si permit chiar reglaje sensibile... O sa ma uit pe documentatiile mele si o sa-ti trimit ceva, chiar si niste surse in Pascal/Delphi...Dar, ai putea sa cauti pe internet, sunt convins ca vei gasi mult mai multe documentatii de fractali, chiar surse de programe si chiar generatoare de fractali, gata facute... E fantastic... Eu m-am rupt de ceva ani de treaburile astea si mi-am pierdut indemanarea ... Vorbesc din aduceri aminte....
Ok...daca nu e foarte urgent, o sa ma straduiesc sa-ti fac un program in Delphi, care sa genereze forme asa cum le vrei tu... Acest topic a fost editat de Clopotel: 28 Jan 2006, 11:05 AM -------------------- Gandurile Mele nu sunt ca gandurile voastre si caile Mele ca ale voastre, zice Domnul.
Si cat de departe sunt cerurile de la pamant, asa de departe sunt judecatile Mele de judecatile voastre si cugetele Mele de cugetele voastre. (Isaia 55:8.9) Ortodoxia - Calea intru Hristos - pe pagina 1 indexarea tematica a subiectelor pt. o usoara urmarire... |
||||||||||||||||||||
|
|||||||||||||||||||||
Versiune Text-Only | Data este acum: 15 May 2024 - 07:38 PM |