Rezolvarea Problemei Croirii Prin Intermediul Metodei Programarii Dinamice

Cuprins

Introducere 8

1 Programare dinamică 10

1.1 Noțiuni generale 10

1.2 Probleme de decizie secvențială 11

1.3 Principiul de optimalitate 14

1.4 Problema rucsacului 21

2 Problema croirii unidimensionale 24

2.1 Formularea problemei 24

2.2 Modelul matematic și analiza lui 24

2.3 Algoritmul de rezolvare 29

2.4 Rezultate numerice 30

3 Sisteme automatizate de proiectare în industria de confecții 35

3.1 Concepte generale 35

3.2 Sistemul INVESMARK 38

3.2.1 Rețeaua INVESMARK 38

3.2.2 Programul MARKA 41

3.2.2.1 Compoziția unei încadrări: repere, stiluri și mărimi 42

3.2.2.2 Atributele unei încadrări 43

3.2.2.3 Operațiile de încadrare 43

3.2.2.4 Regulile de croire 44

3.2.2.5 Generarea încadrării 45

3.2.2.6 Selectarea marker-ului pentru croire 45

3.2.3 Prezentarea unor funcții de bază 46

3.3 Rolul tehnologiei în asigurarea competitivității întreprinderilor 49

4 Partea economică 52

4.1 Introducerea tehnologiilor informaționale noi în sfera de producție 52

4.2 Etapele de proiectare 53

4.3 Evaluarea economică a sistemului proiectat 55

4.3 Determinarea eficienței economice a proiectului 60

5 Protecția muncii 61

5.1 Zgomotul 62

5.2 Microclimatul 63

5.3 Iluminarea 64

5.4 Radiația 66

5.5 Parametrii vizuali ai imaginii 67

5.6 Efecte psihofiziologice 69

5.7 Securitatea electrică 69

5.7.1 Calcularea protecției “legarea la pământ” 70

5.8 Locul de muncă la efectuarea lucrului șezând 71

5.8.1. Principii generale 71

5.8.2. Caracteristicile de dimensiune a locului de muncă 72

5.8.3 Cerințele de amplasare a organelor de conducere 77

5.8.4 Cerințele la amplasarea mijloacelor de reprezentare a informației 77

Concluzii 79

Bibliografie 81

Anexe 82

Anexa 1 (Programul Marca) 82

Anexa 2 (OptimalCut) 90

Anexa 3 (Scema-bloc a programului OptimalCut) 92

Anexa 4 (Listingul programului OptimalCut care rezolvă problema croirii) 93

=== FOLII ===

Algoritmul de rezolvare

Pasul 0. Se consideră Al= (1, 0, …, 0)T, …, An= (0,…0,1)T Rn și după eliminarea necunoscutelor x1,…, xn, din funcția obiectiv se construiește tabelul simplex de tipul I corespunzător formei primal admisibile a problemei (2.2.4) astfel obținute.

Pasul 1 . Fie xk o soluție admisibilă a problemei evidențiată în tabelul simplex obținut după efectuarea a k iterații, astfel încît coefienții din linia funcției obiectiv corespunzători coloanelor Aj determinate pînă atunci să fie nenengativi.

Notăm cu Bk matricea formată din primele n linii și n coloane din tabelul simplex respectiv și cu yk vectorul coeficiențiilor din linia funcției obiectiv corespunzători coloanelor A1, ….An. Definim .

Pasul 2. Dacă Ik=1,…,n atunci xk este soluție optimă a problemei (3.4), STOP

În caz contrar se rezolvă problema

xiZ+ ; i=1,…,n,

unde

Fie fk valoarea optimă a funcției obiectiv și An+k o soluție optimă a problemei.

Pasul 3. Dacă fk1 atunci xk este soluția optimă a problemei, STOP; altfel se adaugă în tabelul simplex curent coloana Bk An+k și corespunzător, în linia funcției obiectiv coeficientul 1-fk. Se continuă aplicarea algoritmului simplex primal pînă cînd toți coeficienții din linia funcției obiectiv corespunzător coloanelor determinate, A1,…, An+k devin nenegativi. Se obține astfel o nouă soluție admisibilă xk+1 a problemei (2.2.4) după care se revine la pasul 1.

Modelul matematic și analiza lui

A=(a1,…,an), ai, i=1,…,n

M=A1,…,An

x=x1,…,xr

PPL cu variabile întregi . min x1+…+xr

xjZ+, j=1,…,r, unde b=(b1,…bn)T, b1, i=1,….n,

Problema relaxată asociată:

min x1+…+xr

xj0, j=1,…,r.

xk este optimală dacă: cj-cBB-1Aj 0, Aj M,

yk=(1,…,1) – cBB-1.

cB B-1= (1…1) – yk .=>

(e-yk) Aj 1, j = 1,…, n problema rucsacului:

max zkx, , x1Z+; i=1,…,n, dacă zk=e-yk

Dacă zk 0 => soluția optimă

Dacă , => xk este soluția optimă,

Dacă .- (, )

Dacă zk – I= i/xki 0. I1,…n,

,

,

xiZ+,i=1,…n.

=== SCHEMEFR ===

Scema-bloc a programului OptimalCut

=== TEORIE ===

Cuprins

Introducere

Una dintre problemele de bază ale unei industrii este creșterea volumului de producție de calitate înaltă cu cheltuieli minime de lucru și de materie primă. Pentru aceasta este necesar mai întîi de toate de perfecționat tehnologiile, avînd la bază dezvoltarea mijloacelor de automatizare.

Cele mai perspective metode de proiectare a produselor industriale sunt bazate pe utilizarea mijloacelor tehnice noi, care contribuie la ridicarea calității și reducerea duratei de elaborare a proiectului. Automatizarea este însă de neconceput fără aplicarea calculatoarelor, suporturilor programice.

Procesul de proiectare a produselor de îmbrăcăminte necesită elaborarea unui sistem informațional complex, care include toate etapele de proiectare, începînd cu conceperea modelului și pînă la încadrarea și tăierea reperelor de produs. În lucrarea de față se rezolvă o etapă a acestui proces, care constă în croirea optimă a rulourilor de materiale pentru diferite tipuri de produse. În acest scop s-a utilizat o tehnică specifică de programare matematică – programarea dinamică, care este descrisă în capitolul 1 prin specificarea domeniilor unde poate fi aplicată.

Capitolul 2 conține rezolvarea algoritmică a problemei propriu-zise, adică problema croirii unidimensionale.

În capitolul 3 se face o analiză a sistemelor automatizate de proiectare în industria de confecții și se dă descrierea detaliată a sistemului Invesmark elaborat de firma spaniolă Investronica. Acest program se aplică în procesul de proiecatre la fabrica de confecții “Ionel” din Chișinău, fiind furnizat de italieni în cadrul sistemului lohn de producere.

Evaluarea economică a programului și estimarea beneficiului este descrisă în capitolul 4.

În capitolul 5 se conține informația cu privire la protecția muncii și securitatea tehnică. Influența dăunătoare asupra omului: zgomotul, radiația. Sunt expuse normativele referitor la microclimatul și iluminarea încăperilor, parametrii vizuali ai imaginii, securitatea electrică și cerințele de organizare a locului de muncă.

1 Programare dinamică

1.1 Noțiuni generale

Una dintre tehnicile de bază folosite pentru rezolvarea problemelor de programare matematică este metoda programării dinamice. Denumirea de programare dinamică provine din faptul că inițial această metodă a fost concepută pentru a rezolva modele matematice ale unor probleme de decizie în care procesul de decizie poate fi descompus într-o succesiune temporală de decizii. O astfel de problemă de decizie se mai numește problemă de decizie secvențială și o putem concepe ca fiind constituită dintr-un ansamblu de probleme de decizie ce ar trebui rezolvate la diferite momente de timp, începând cu un moment inițial t0, structura problemei de decizie ce ar urma să fie rezolvată la momentul t, t>t0, depinzând în general de deciziile luate până la momentul t. Pentru exemplificare, să considerăm că într-o întreprindere se consumă zilnic r unități dintr-un anumit tip de produs, aprovizionarea cu acest tip de produs neputându – se face la intervale de timp mai mici de h zile. În această situație se va impune constituirea unui stoc din acest produs, care să asigure necesarul pentru cel puțin h zile și, având în vedere că atât stocarea produsului cât și refacerea stocului implică niște cheltuieli, se poate pune problema determinării momentelor de timp și a cantităților corespunzătoare de produs care să reînnoiască stocul astfel încât cheltuielile globale pentru un interval de timp dat să fie minime.

În această problemă de decizie timpul intervine în mod explicit, rezolvarea problemei însemnând să se precizeze pentru toate momentele de timp din intervalul de timp considerat dacă să se introducă în stoc o nouă cantitate din procesul considerat și cât de mare să fie această cantitate. O alternativă în problema de decizie corespunzătoare unui moment t va fi de forma (t, Q(t)) unde Q(t), Q(t)>0, reprezintă cantitatea ce poate fi comandată la momentul t, pentru problema globală o alternativă putând fi identificată cu o funcție: Q:IR, unde I este intervalul de timp considerat. Cantitatea Q(t) ce poate fi comandată la momentul t este de regulă dependentă de stocul disponibil la momentul t, aspectul secvențial al procesului de decizie fiind evident.

Deși la început tehnica programării dinamice a fost construită cu scopul rezolvării problemelor de decizie secvențiale, s-a observat că această tehnică poate fi utilizată și pentru rezolvarea unor probleme de decizie (mai exact a modelelor matematice asociate acestora) în care timpul nu intervine efectiv, descompunerea secvențială a procesului de decizie fiind artificială, această descompunere făcând însă posibilă folosirea metodei programării dinamice pentru rezolvarea problemei. Dacă modelul matematic al unei probleme de decizie este problema de programare matematică.

Max f(x), D<Rn

xD

atunci am putea considera că determinarea unei soluții optime a problemei constă în precizarea succesivă a unor valori xi*, i=1,…,n, pentru variabilele de decizie xi, i=1,…,n, astfel încât xn=(xjm,…,xnm)D și f(xm)f(x), xD.

În lucrarea de față vom prezenta tehnica de rezolvare a problemelor de decizie numită programare dinamică și vom studia metoda programării dinamice pentru rezolvarea problemei croirii unidimensionale.

1.2 Probleme de decizie secvențială

Probleme de decizie secvențială apar în strânsă legătură cu problemele de dirijare a comportării în timp a unor sisteme, prin sistem înțelegându-se în linii mari un ansamblu dat de obiecte concrete sau abstracte, în general interdependente.

Dacă un decident poate influiența, prin anumite comenzi sau decizii, modul de comportare în timp al unui sistem dat se spune că sistemul considerat este controlabil de către decident, deciziile acestuia modificând valorile unor parametri caracteristici ai sistemului, numiți parametri de stare ai sistemului dat. În modelele matematice ale sistemelor concrete parametrilor de stare se asociază variabile numerice numite variabile de stare ale sistemului, starea sistemului la un moment dat fiind complet caracterizată de ansamblul valorilor acestor variabile de stare. Presupunând că un sistem este caracterizat de n variabile de stare 1,…,n atunci starea sistemului la momentul t poate fi reprezentată prin vectorul (t)=(1(t),…., n(t)) în care 1(t), i=1,…,n, reprezintă valorile variabilelor de stare la momentul t.

Vom nota prin , Rn, mulțimea stărilor posibile ale unui sistem dat S și să presupunem că o decizie a unui decident constă în atribuirea de valori unor variabile numerice x1, i=1,…,n, numite variabile de decizie, adică o decizie este identificată cu un vector =(x1,…,xn)D Rn.

Mulțimea D, DRn, o vom numi mulțimea de decizii posibile (alternative) ale decidentului, iar prin D(), , vom nota acea submulțime a mulțimii D din care decidentul poate alege un element, (alternativa) atunci când sistemul se află în starea .

În cele ce urmează vom presupune că sistemul S nu poate trece de la o stare în altă stare diferită de decât ca urmare a intervenției decidentului prin alegerea unei decizii D(), sau datorită unor factori interni sau externi a căror influiență asupra stării sistemului este perfect cunoscută. De asemeni, vom presupune că decidentul poate lua decizii numai la momente discrete de timp ti, i=1, 2,…. Momentele de timp ti, i=1, 2,…., în care se iau decizii se mai numesc pași ai procesului de decizie, procesul de decizie numindu-se cu orizont finit atunci când numărul pașilor este finit. În general, dacă sistemul S se află într-o stare și se ia decizia D() atunci sistemul trece într-o stare ’ care depinde de și , dar poate depinde și de factorii externi necontrolabili, sistemul numindu-se determinist sau nedeterminist după cum stare ’ depinde numai de și sau depinde și de factori externi necontrolabili. În cazul când t este un moment de decizie, iar t+t este momentul de decizie imediat următor atunci vom nota prin T((t),(t)) starea în care se află sistemul considerat la momentul t+t, dacă la momentul t sistemul se află în starea (t) și se ia decizia (t)D((t)). Presupunând că S este un sistem determinist atunci putem considera că T((t),(t))=(t+t) în timp ce în cazul sistemelor nedeterministe T((t), (t)) este interpretată ca o variabilă aleatoare.

Să presupunem acum că, atunci când sistemul se află într-o stare și se ia decizia D(), se asociază perechii (,) un număr real n (, ) și care reprezintă utilitatea obținută de decident ca urmare a alegerii deciziei în situația când sistemul se află în starea .

De acum încolo vom considera că deciziile se pot lua numai la momente discrete de timp ti, i=1,…,n și vom conveni să notăm prin N acel pas al procesului de decizie, când până la ultimul pas au mai rămas de efectuat N pași, iar prin N, N, uN vom nota respectiv starea sistemului, decizia luată de decident și utilitatea obținută de acesta în pasul N al procesului de decizie.

În acest mod, pentru N=1, 2,…, n–1, N este starea sistemului la momentul tn-N+1iar N, nN reprezintă decizia luată la momentul tn-N+1, ND(N), respectiv utilitatea obținută de decident după luarea deciziei N, adică nN=nN(N,N).

Pentru un proces de decizie secvențională în n pași starea n se numește stare inițială a sistemului, iar o succesiune de decizii n, n-1,…, 1, în care ND(N), N=1,…,n, se numește politică, sau strategie a decidentului.

Având în vedere că la un pas N al procesului de decizie decidentul obține utilitatea uN=uN(N, N), utilitatea globală obținută de acesta la sfârșitul procesului de decizie va depinde de utilitățile parțiale obținute la fiecare pas și ar putea fi exprimată prin valoarea unei funcții Ln: RnR astfel încât Ln(un,…,u1) să reprezinte utilitatea globală în cazul când se adoptă politica (n,…,1), starea inițială a sistemului, n, fiind dată.

Presupunând că pentru fiecare mulțimea deciziilor admisibile D() este bine determinată, iar starea inițială a sistemului, n, este dată constatăm că utilitatea globală obținută de decident la sfârșitul procesului de decizie este determinată de politica utilizată, (n,…,1) și atunci se poate cere stabilirea unei politici pentru care utilitatea globală să fie maximă, o politică care asigură obținerea unei utilități globale maxime numinduse politică optimă. După cum am observat mai înainte, utilitatea globală obținută de decident depinde de politica folosită de acesta și de starea inițială a sistemului; vom nota prin fn(n;n,…,1) utilitatea globală realizată de decident atunci când starea inițială a sistemului este n și se folosește politica (n,…,1), adică

(1.2.1) fn(n;n,…,1)=Ln(un(n,n),…,u1(11)).

De asemeni, vom nota Fn(n) utilitatea obținută în cazul folosirii unei politici optime, adică

(1.2.2) Fn(n)=max fn(n;n,…1),

maximum din (1.2). luându-se după toate politicile

(n,…,1)P(n)={(n,…,1); N D(N), N=1,…,n}.

Presupunând starea inițială n dată, problema (1.2.2) este o problemă de programare matematică, de regulă, cu un număr mare de variabile, metoda programării dinamice urmărind rezolvarea acestei probleme prin rezolvarea unor probleme cu un număr mai mic de variabile, aceeași idee aflându-se și la baza utilizării metodei programării dinamice pentru rezolvarea unei probleme oarecare de programare matematică.

1.3 Principiul de optimalitate

Determinarea unei politici optime prin metoda programării dinamice se poate face atunci când se poate accepta următorul principiu de bază al programării dinamice numit principiu de optimalitate:

Pentru orice stare inițială N, N2, a sistemului considerat și orice decizie inițială fixată ND(N) utilitatea maximă ce se poate obține într-un proces de decizie în N pași se realizează numai atunci când în următorii N-1 pași se utilizează o politică optimă corespunzătoare procesului de decizie în cei N-1 pași rămași, cu starea inițială a sistemului N-1=T(N,N).

Acceptarea acestui principiu de optimalitate conduce la concluzia că pentru un proces de decizie în N pași, N2, în care starea inițială a sistemului este N iar decizie inițială ar fi N(N), utilitatea maximă globală ce poate fi obținută se poate scrie sub forma

GN (uN(N,N), TN-1(N-1)),

unde GN este o funcție GN: R2R, uN(N,N), este utilitatea obținută de decident în pasul N, N-1=T(N,N) este starea sistemului la pasul N-1, iar FN-1(N-1) este utilitatea maximă ce poate fi obținută de decident în procesul de decizie secvențială în N-1 pași cu starea inițială N-1. Prin urmare utilitatea maximă ce poate fi obținută de decident într-un proces de decizie în N pași, N2, în care starea inițială a sistemului este N poate fi scrisă sub forma

FN(N)=,

unde este starea sistemului la pasul N-1. În cazul unui proces de decizie într-un singur pas utilitatea totală coincide cu utilitatea corespunzătoare acestui singur pas și deci putem scrie

(1.3.2) F1(1)=.

Dacă funcțiile GN, N2, GNR2R, ar fi cunoscute atunci relațiile de recurență (1.3.1), (1.3.2) ar putea fi folosite pentru a determina utilitățile globale maxime FN(N) corespunzătoare unui proces de decizie în pași , pentru orice N1 și orice stare inițială N a sistemului. Relațiile de recurență (1.3.1) și (1.3.2) se mai numesc relațiile de recurență ale programării dinamice.

Rezolvarea unei probleme de decizie secvențială în n pași , prin metoda programării dinamice, presupune parcurgergerea a două etape bine delimitate. În prima etapă se determină funcțiile FN , FN2 R, N=1,2,…..,n, folosind relațiile de recurență (1.3.1), (1.3.2) și totodată se precizează deciziile pentru care au loc

(1.3.3)

Din felul cum sînt definite deciziile (), (N1), și din relațiile de recurență (1.3.1) ,(1.3.2) constatăm că () trebuie considerată ca fiind o cea mai bună decizie în N pași atunci când starea inițială a sistemului este .

În cea de-a doua etapă, presupunând cunoscută starea inițială a sistemului n, se determină o politică optimă (, …, ) pentru procesul de decizie în n pași, determinând succesiv deciziile optime la fiecare pas pe baza relațiilor

(1.3.4)

i=1,..n-1

unde 1=T(I+1, I+1), i=1,…., n-1.

Principiul de optimizare și relațiile (1.3.1.)-(1.3.4) ne asigură atunci că politica (, …, ) definită prin (1.3.4) este o politică optimă pentru procesul de decizie în n pași cu starea inițială n.

Din punct de vedere practic utilitatea metodei programării dinamice depinde de mai mulți factori între care menționăm gradul de complexitate al funcțiilor GN , N1, modul în care se definește operatorul de trecere a sistemului dintr-o stare în alta și modul în care sînt definite domeniile de decizii admisibile D(), .

Notăm faptul că atunci când funcția de utilitate globală , Ll, pentru un proces de decizie în N pași îndeplinește

(1.3.5)

rezultă că funcția GN, N2, GN : R2R poate fi definită prin

(1.3.6) GN(x,z)=x+y

Și deci relațiile de recurență (1.3.1) , (1.3.2) pot fi scrise sub forma

(1.3.7)

Relațiile de recurență (1.3.7) se numesc relațiile de recurență fundamentale ale programării dinamice. Vom dovedi că atunci când funcția de utilitate globală îndeplinește condițiile (1.3.5) urmează că sunt adevărate relațiile de recurență (1.3.7) .

Facem precizarea că în cazul când funcția de utilitate globală , are proprietatea (1.3.5) se mai spune că funcția LN este aditivă.

Să presupunem deci că are loc (1.3.5) , adică

(1.3.8)

unde

Din (1.3.1), (1.3.2) și (1.3.8) urmează atunci

(1.3.9)

unde

În ipoteza că funcțiile ui, i=1,…N, sunt continui iar domeniile D(i), i=1,…,N sunt închise putem scrie

(1.3.10)

pentru .

Se observă cu ușurință că relația (2.151) este adevărată atunci când există toate valorile maxime ce intră în compunerea acesteia. Folosind (2.151) constatăm că putem scrie

(1.3.16)

atunci cînd toate maximale ce intervin (1.3.16) există,ceea ce înseamnă că rezolvarea problemei (1.3.15) se poate reduce la determinarea punctelor de maxim pentru n funcții de o singură varabilă în care pot interveni și niște parametri.

Totodată să observăm că putem concepe procesul de determinare a unei soluții optime a problemei (1.3.15) ca un proces dinamic prin care se atribuie mai întîi o valoare variabilei xn după care se atribuie o valoare variabilei xn-1 și așa mai departe până vom atribui valori tuturor celor n variabile, astfel încît vectorul corespunzător acestui sistem de valori să se afle în D și totodată să se atingă valoarea maximă a funcției f.

Având în vedere cele două etape ce se parcurg atunci cînd se rezolvă o problemă de decizie secvențială în n pași prin metoda programării dinamice, urmează că reușita acestei metode la rezolvarea problemei (1.3.15) depinde în mare măsură de gradul de complexitate al funcției f și al domeniului D.

Un caz particular important este acela în care funcția obiectiv f are proprietatea de aditivitate , adică f (x1,…,xn)=f1 (x1)+…+fn(xn) , (x1,…,xn)D, caz în care utilizarea metodei programării dinamice se poate dovedi eficace.

Pentru a putea utiliza metoda programării dinamice la rezolvarea unei probleme de forma (1.3.15) este de asemeni necesar să definim variabilele de stare ale unui sistem asociat problemei, mulțimea stărilor posibile cît și operatotul de trecere de la o stare la alta în fiecare pas al procesului de decizie secvențială asociat problemei.Vom ilustra acum modul în care se poate aplica metoda programării dinamice la rezolvarea unei probleme de programare matematică considerînd o problemă de programare de forma:

Să se determine

(1.3.17) în condițiile a)

b)

în care aij0 ,bi0 , pentru orice i=1,…,m și orice j=1,…,n

Dacă fI(xi)=aIxI,I=1,…,n, atunci problema (1.3.17) este o problemă de programare liniară total în numere întregi și pentru rezolvarea ei se pot folosi metodele specifice acestor probleme, dar în cazul cînd funcțiile fI, i=1,…n, nu sînt liniare metoda programării dinamice se poate dovedi folositoare pentru rezolvarea problemei (1.3.17).

Dacă ne imaginăm procesul de determinare a unei soluții optime pentru problema (1.3.13) ca un proces de decizie segvențile în n pași, la pasul N, 1Nn, atribuindu-se o valoare varibilei xN, atunci se observă că la orice pas se alege un număr întreg ne negativ și deci putem considera că mulțimea deciziilor posibile D este mulțimea numerilor întregi ne negative. Pe de altă parte dacă se atribuie unei varibile o anumită valoare atunci restul varibililor pot lua valori astfel în cît să fie verificat sistemul de condiție.

(1.3.18)

ceea ce înseamnă că valorile ce pot fi atribuite variabilelor depind de coeficienții aij și de termenii liberi bI din sistemul (1.3.17a).

Din (1.3.18) se observă că în procesul de atribuire de valori unora dintre variabile sistemul de condiții impus varibililor rămase este caracterizat de termenii liberi ai unui sistem liniar de inecuații, coeficienții necunoscutelor rămase fiind aceeași ca și în sistemul (1.3.17a). Deoarece termenii liberi se modifică este natural să considerăm că atribuirea de valori unora dintre varibile conduce la modificarea unui sistem S, o stare a cestui sistem fiind caracterizată de valorile a m varibile reale (1,…, n), 0ibI, i=1,….m, corespunzătoare termenilor liberi ai sistemului de inecuații (1.3.17a).

Dacă sistemul S se află în starea =(10,…m0) și atribuim variabilei xj valoare xj0 atunci sistemul trece în starea 1=-xj0aj, unde aj=(a1j,..amj), în felul acesta fiind definit operatorul de trecere de la o stare la alta T(N, xN)=N-xNaN.

Să mai observăm că atunci cînd la un pas N sitemul se află în stare N=(1,…, m), unde i0, I=1,…m, variabilei xN putrem sa-i atribuim valori întregi din intervalul [0, N] în care

(1.3.19)

și deci mulțimea admisibile la pasul N va fi F(N)=xNxNZ, 0xNN).

Considerând acum drept funcție de utilitate globală funcții obectiv din problema (1.3.17) putem scrie relațiile de recurență

xNZ

x1Z

unde N=(N1,…Nm)Rm+, iar N este definit prin (1.3.19).

Folosind aceste relații de recurență, prin metoda programării dinamice se va determina FN(b1,…bm) și apoi soluția optimă a problemei (1.3.17). Notăm faptul că atunci cînd aijZ, 1, j, putem calcula F1() numai pentru (1,…..,m)Z,m+, bi, i=1,…m.

1.4 Problema rucsacului

Problema rucsacului este o problemă particulară de programare liniară cu variabile întregi, problemă care are importanță nu atît prin ea însăși cît prin faptul că pentru rezolvarea unor probleme de programare discretă se dovedește utilă stabilirea unor metode eficiente de rezolvare a problemei rucsacului. Denumirea de “ Problema rucsacului” se datorește următoarei interpretări posibile: o persoană, care urmează să plece într-o excursie în munți, intenționează ca pe lîngă alte lucruri de strictă necesitate să ia într-un rucsac o serie de obiecte utile de care ar putea să se dispenseze atunci cînd nu ar încape în rucsacul respectiv. Să presupunem că există n tipuri de astfel de obiecte, valoarea unui obiect de tipul k fiind de ck unități bănești.

De asemeni, să presupunem că rucsacul are un volum de b unități de volum iar un obiect de tipul k ocupă un volum de ak unități de volum , persoana considerată urmărind să ia în rucsac cîte un număr de obiecte din fiecare tip astfel încît valoarea totală a obiectelor din rucsac să fie maximă. Dacă vom nota cu xk , k=1,…, n, numărul de obiecte de tipul k ce urmează să fie puse în rucsac, atunci obiectivul urmărit se atinge în ipoteza că (x1,…, xn) este o soluție optimă a problemei de programare matematică

(1.4.1) max c1x1+… +cnxn

a) a1x1+… +anxn ≤ b,

b)xi Z+, i=1,…, n.

O problemă de forma (1.4.1), în care ai, ci Z+, i=1,…, n și bZ+, se spune că este o problemă liniară a rucsacului, pentru rezolvarea problemei liniare a rucsacului fiind utilizate de regulă metode de ramificare și mărginire sau metode de programare dinamică.

Se observă că atunci cînd în problema (1.4.1) ai, ci Z+, i=1,…, n și bZ+ și ar exista i01,…,n astfel ca ai0=0,ci0>0 problema (1.4.1) nu are soluție optimă, iar dacă ai0=0, ci0=0 rezultă că necunoscuta xi0 poate fi eliminată din problemă.

Putem deci considera probleme de forma (1.4.1) în care ai >0, ci ≥o, i=1,…, n,

b ≥0.

Una dintre relațiile de recurență ce se poate utiliza pentru rezolvarea problemei (1.4.1) prin metoda programării dinamice este:

Pentru să considerăm problema

P(): max c1x1+… +cnxn

a) a1x1+… +anxn

xi Z+, i=1,…, n

și să notăm prin f() valoarea optimă a funcției obiect din problema P(), adică

f() = ( c1x1+… +cnxn),

unde X() reprezintă mulțimea soluțiilor admisibile ale problemei P().

Deoarece ai0, i=1,…, n și pentru orice xX() are loc x0 este clar că atunci cînd 0 =minai,i=1,…, n urmează X()=(0,…, 0) și deci putem scrie:

(1.4.2) f() = 0, 0,

soluția optimă corespunzătoare a problemei P() fiind x() = (0,…, 0)Rn. Pentru Z, 0 b, să notăm I() mulțimea definită prin

(1.4.3) I() =i / ai,

Atunci este evident că în orice soluție optimă a problemei P() are loc:

(1.4.4) xi = 0, i I()

și se verifică direct că putem scrie

(1.4.5) .

Folosind acum relațiile de recurență (1.4.2), (1.4.5) se poate determina succesiunea f(0), f(0+1),…, f(b) determinînd în final valoarea optimă a funcției obiectiv pentru problema (1.4.1), aceasta fiind f(b).

Dacă în plus odată cu determinarea numărului f(), 0 b, se reține și indicele i() pentru care se atinge maximul în membrul al doilea din (1.4.5) vom putea determina recurent o soluție optimă a problemei (1.4.1) evidențiind succesiunea de indici i(b), i(b-ai (b)),…, într-o soluție optimă x=( xi) componenta xi avînd valoarea egală cu numărul de apariții ale indicelui i în această succesiune.

2 Problema croirii unidimensionale

2.1 Formularea problemei

Să presupunem că la un depozit de materiale textile se găsesc rulouri de țesături de aceeași lățime și aceeași lungime L. Este necesar să se obțină prin tăiere bucăți de țesătură de lungimi li, i=1,..n, în cantitățile bi i=1,…n, respectiv și se cere să se realizeze bucățile necesare cu un consum minim de materie primă, adică cu un consum minim de rulouri de lungimea L. O astfel de problemă se spune că este o problemă de croire unidimensională, condiția ca materia primă să fie constituită din rulouri de aceeași lungime fiind impusă numai pentru a simplifica descrierea metodei de rezolvare a acestei probleme, metoda putând fi extinsă fără dificultate și în cazul când materia primă este constituită din rulouri sau fîșii de diferite dimensiuni.

2.2 Modelul matematic și analiza lui

Pentru a construi un model matematic al problemei enunțate mai sus, să observăm de la început că pentru realizarea cantităților necesare din rulouri de lungimi Li ,i=1,…,n, putem folosi diferite modalități de tăiere (croire) a unui rulou de lungime L, fiecare modalitate de croire fiind caracterizată de numărul de bucăți de fiecare lungime li, i=1,..,n, ce se pot obține atunci cînd se utilizează modalitatea respectivă de croire. O modalitate de croire a unui rulou de lungime L poate fi deci identificată cu un vector A=(a1,…,an) în care ai, i=1,…,n reprezintă numărul bucăților de lungimi li ,i=1,…,n, ce se obțin ca urmare a utilizării acestui mod de croire. Deci orice mod de croire poate fi identificat cu o soluție a sistemului de restricții.

(2.2.1)

Deoarece L și bi, i=1,…,n sînt numere pozitive rezultă că mulțimea soluțiilor sistemului (2.2.1) este finită și dacă notăm prin M=A1,…,An mulțimea soluțiilor sistemului (2.2.1) vom putea spune că M reprezintă în același timp mulțimea tuturor modalităților de croire a rulourilor de lungime L. Vom conveni ca elementele Aj, j=1,…,r, ale mulțimii M să fie considerate vectori coloană.

Pentru obținerea numărului necesar de bucăți de lungime li, i=1,…,n se poate utiliza oricare dintre acelea r moduri de croire reprezentate prin vectorii coloană aj, j=1,…,r, problema de croire undimensională formulată fiind rezolvată dacă vom preciza cîte rulouri de lungime L să fie croite după fiecare din acele R moduri de croire, asfel încît să se realizeze bi, i=1,…,n bucăți de lungime li , i=1,…, n, iar consumul total de rulouri de lungime L să fie minim.

Convenim că prin plan de croire al rulourilor de lungime L să înțelegem un vector x=x1,…,xr cu componente întregi nenegative, componența xj a vectorului x reprezintă numărul de rulouri de lungime L ce urmează a fi croite folosind modul de croire corespunzător vectorului NM.

Se constată imediat că rezolvarea problemei croirii unidimensionale se reduce la determinarea unui plan de croire xm=(xm1,…,xmn) care să fie soluție optimă a problemei de programare liniară cu variabile întregi .

(2.2.2) min x1+…+xr

xjZ+, j=1,…,r,

unde b=(b1,…bn)T, b1, i=1,….n, reprezintă necesarul de bucăți de lungime li i=1,….n, respectiv.

În ipoteza că vectorii coloană Aj j=1,….r, ar fi determinați atunci pentru rezolvarea problemei (2.2.2) ar putea fi folosită oricare dintre metodele de rezolvare pentru probleme de programare liniară cu variabile întregi. Vectorii Aj j=1,…,r, reprezintă însă mulțimea soluțiilor sistemului (2.2.1) și deci în principiu poate fi determinată, din punct de vedere practic luarea în considerare a eventualității determinării mulțimii M poate fi inacceptabilă datorită numărului inaccesiv de mare de soluții ale sistemului (2.2.1). Vom dovedi că determinarea prealabilă a mulțimii M poate fi evitată, folosind o metodă asemănătoare cu cea utilizată în metoda de descompunere a lui Dantzig și Wolfe. Se observă că sistemul (2.2.1) are soluții dacă și numai dacă

(2.2.3)

condițiile în care asigură totodată și existența unei soluții optime pentru problema (2.2.2).

Ne propunem să rezolvăm mai întîi problema relaxată asociată problemei (2.2.2),

(2.2.4) min x1+…+xr

xj0, j=1,…,r.

presupunînd condiția (2.2.3) îndeplinită, este clar că vectorii coloană A1=(0,…..0,1)T sînt elemente ale mulțimii M și deci sistemul de ecuații (2.2.4 a) este explicitat, fapt care ne permite ca după eliminarea necunoscutelor x1,….xn din funcția obiectiv să folosim algoritmul simplex primal pentru rezolvarea problemei (2.2.4).

Vom presupune că pentru rezolvarea problemei (2.2.4) folosim un tabel simplex de tipul I. Dacă prin iterația inițială (iterația 0) convenim să înțelegem operația de eleminare a necunoscutelor principale de funcția obiectiv, după k iterații, k0, ale algoritmului simplex primal aplicat problemei (2.2.4) se obține o formă primal admisibilă, în care este evidențiată soluția de bază admisibilă xk, atunci această soluție ar fi optimală dacă

(2.2.5) cj-cBB-1Aj 0, Aj M,

unde cj =1 este coeficientul necunoscutei xj din funcția obiectiv a problemei (2.2.4), cB=(1,…1)Rn este vectorul linie constituit din coeficienții funcției obiectiv corespunzătoare necunoscutelor principale după cele k iterații, iar B este o matrice constituită din coloanele Aj corespunzătoare necunoscutelor principale în acest ultim tabel simplex. Deoarece după iterația 0 necunoscute principale sînt x1,…xn iar Ai =(0,…, 0, 1, 0…0)T, i=1,…,n rezultă că după k iterații, k0, matricea B-1 se află în primele n linii și n coloane ale tabelului simplex obținut după cele k iterații.

Totodată să observăm că după k iterații ale algoritmului simplex primal coeficienții din linia funcției obiectiv corespunzători necunoscutelor xi, i=1,…,n, pot fi grupați în ordine în vector ykRn definit prin

(2.2.6) yk=(1,…,1) – cBB-1.

Și deci cB B-1= (1…1) – yk .

Prin urmare condiția (2.2.5) este îndeplinită dacă și numai dacă este îndeplinită condiția

(2.2.7) (e-yk) Aj 1, j = 1,…, n

unde yk este vectorul linie corespunzător coeficienților necunoscutelor x1,…,xn din linia funcției obiectiv reprezentată în tabelul simplex curent asociat problemei (2.2.4) iar e=(1,…,1)Rn.

Relațiile (2.2.7) sînt evident echivalente cu

(2.2.8)

și dacă notăm zk=e-yk atunci este clar că primul membru al inegalității (2.2.8) este egal cu valoarea optimă a funcției obiectiv din problema

(2.2.9) max zkx

x1Z+; i=1,…,n,

care este o problemă asemănătoare problemei rucsacului.

Cazul 1. Dacă zk 0 atunci problema (2.2.9) este o problemă liniară a rucsacului și poate fi rezolvată folosind metodele de rezolvare pentru problema rucsacului obținîndu-se o soluție optimă pentru problema (2.2.9). În cazul cînd , din cele arătate mai sus, urmează că xk este soluția optimă a problemei (2.2.4) și deci o soluție optimă a problemei de croire unidimensională. În cazul cînd , vom putea continua aplicarea algoritmului simplex primal prin întroducerea în tabelul simplex a coloanei și a coeficientului corespunzător din linia funcției obiectiv , operațiile algoritmului efectuîndu-se pînă cînd toți coeficienții din linia funcției obiectiv corespunzători coloanelor Aj determinate pînă la acest moment devin nenegativi. În acest mod vom evidenția o nouă soluție de bază xk+1 a problemei (2.2.4).

Cazul 2. Dacă zk are și componente nenegative să considerăm I= i/xki 0. Se constată fără dificultate că atunci cînd I 1,…,n, singura soluție optimă a problemei (2.2.9) este dată prin xj=0, j=1,…n, ceea ce implică îndeplinirea condițiilor (2.2.8) și deci xk este soluție optimă a problemei (3.4). Dacă însă I1,…n, considerînd problema

(2.2.10)

xiZ+,i=1,…n.

se verifică imidiat că valorile optime ale funcțiilor obiectiv din problemele (2.2.9) și (2.2.10) sînt egale.

Problema (2.2.10) este o problemă liniară a rucsacului și rezolvînd-o cu o metodă specifică a acestei metode vom obține o soluție optimă dacă valoarea optimă a funcției obiectiv din problema (3.10 ), (deci și din problema (3.9)), nu depășește pe l atunci xk va fi soluție optimă a problemei (3.4), iar în caz contrar se întroduce în tabelul simplex coloana și coeficientul corespunzător din linia funcțiiei obiectiv, , continuîndu-se aplicarea algoritmului simplex primal.

2.3 Algoritmul de rezolvare

Rezultatele stabilite ne permit să construim următorul algoritm de rezolvare a problemei (2.2.4):

Pasul 0. Se consideră Al= (1, 0, …, 0)T, …, An= (0,…0,1)T Rn și după eliminarea necunoscutelor x1,…, xn, din funcția obiectiv se construiește tabelul simplex de tipul I corespunzător formei primal admisibile a problemei (2.2.4) astfel obținute.

Pasul 1 . Fie xk o soluție admisibilă a problemei (2.2.4) evidențiată în tabelul simplex obținut după efectuarea a k iterații, astfel încît coefienții din linia funcției obiectiv corespunzători coloanelor Aj determinate pînă atunci să fie nenengativi.

Notăm cu Bk matricea formată din primele n linii și n coloane din tabelul simplex respectiv și cu yk vectorul coeficiențiilor din linia funcției obiectiv corespunzători coloanelor A1, ….An. Definim .

Pasul 2. Dacă Ik=1,…,n atunci xk este soluție optimă a problemei (3.4), STOP ;

În caz contrar se rezolvă problema

(2.2.11)

xiZ+ ; i=1,…,n,

unde

Fie fk valoarea optimă a funcției obiectiv și An+k o soluție optimă a problemei (2.2.11).

Pasul 3. Dacă fk1 atunci xk este soluția optimă a problemei (2.2.4), STOP; altfel se adaugă în tabelul simplex curent coloana Bk An+k și corespunzător, în linia funcției obiectiv coeficientul 1-fk. Se continuă aplicarea algoritmului simplex primal pînă cînd toți coeficienții din linia funcției obiectiv corespunzător coloanelor determinate, A1,…, An+k devin nenegativi. Se obține astfel o nouă soluție admisibilă xk+1 a problemei (2.2.4) după care se revine la pasul 1.

2.4 Rezultate numerice

Fie L= 10, l1 = 2, l2 = 3, l3 =5, b1 = 40, b2 = 20, b3 = 15.

În acest caz A1=(1,0,0)T, A2=(0,1,0)T, A3=(0,0,1)T și evident putem considera A4=(5,0,0)T, A5=(0,3,0)T, A6=(0,0,2)T, după pasul 0 obținîndu-se tabelul simplex inițial.

Tab. 1

Tabelul simplex inițial

Tab. 2

Tabelul simplex după trei iterații

În care este evidențiată soluția admisibilă x4=8,×5=20/3, x6=15/2,xi=0, i4,5,6, continuarea aplicării algoritmului simplex primal fiind posibilă numai după rezolvarea problemei

Folosind relațiile de recurență (2.2.4), (2.2.7) pentru rezolvarea problemei rucsacului obținem tabelul 3.

Tab. 3

Tabelul pentru problema rucsacului

Și deci f(l0)= 16/151 iar soluția optimă a problemei rucsacului considerate mai sus este

Deci vom lua AT=(2,2,0)T și vom adăuga la tabelul simplex precedent coloana

,

unde B-1 este matricea formată din primele trei linii și trei coloane ale ultimului tabel simplex, iar în linia funcției obiectiv vom adăuga respectiv coeficientul

Obținem astfel tabelul 4.

Tab. 4

Următorul tabel simplex

După efectuarea unei singure iterații din algoritmul simplex primal obținem tabelul 5.

Tab. 5

Noul tabel simplex

Problema de programare liniară asociată va fi de această dată

Max 1/5 x1+3/10×2+1/2×3

2×1+3×2+5×310

xiZ+; i=1,2,3.

Folosind același procedeu ca mai înainte obținem tabelul 6.

Tab. 6

Noul tabel al problemei rucsacului

Constatînd astfel că f(l0) = l 1 și deci soluția admisibilă x4=4; x6=15/2; x7=10; xi=0, 4,6,7, este soluția optimă a problemei corespunzătoare problemei (2.2.4). Dacă soluția ar avea toate componentele întregi am dispune astfel de un plan de croire a rulourilor de lungime 10 pentru a obține numărul necesar de bucăți de lungime 2,3,5. În situația dată am putea considera drept o aproximare a unui plan optim de croire tăierea a patru rulouri conform regulei de tăiere (5,0,0) a 10 rulouri conform regulei de tăiere (2.2.0) și a opt rulouri conform regulei (0,0,2) care este chiar un plan optim de croire deoarece valoarea optimă a funcției obiectiv din problema relaxată este 43/2 ceea ce înseamnă că pentru a realiza bucățile de lungime 2, 3, 5 sînt necesare cel puțin douăzeci și două de rulouri de lungime 10 iar cu 22 rulouri acest plan se realizează.

În general, dacă o singură componentă a soluției optime obținute pentru problema (2.2.4) este neîntreagă, procedînd prin rotungire ca mai înainte obținem o soluție optimă a soluției (2.2.2) și deci un plan optim de croire. Dacă însă mai multe componente ale soluției optime obținute pentru problema (2.2.4) sînt neîntregi atunci nu mai avem garantată optimalitatea soluției obținute prin rotungire pentru problema de croire considerată. Să observăm că în cazul cînd se procedează prin rotungire, ca în exemplul de mai înainte în cel mai rău caz vom utiliza n-l rulouri de lungime L mai mult decît numărul optim de rulouri de lungime L necesar pentru a obține necesarul de bucăți de lungimi li ,i=1,…,n, ceea ce pe de o parte nu este o situație frecventă, iar pe de altă parte atunci cînd sînt necesare serii mari de bucăți de lungime li, i=1,…,n, consumul suplimentar chiar și a n-1 rulouri de lungime L se poate dovedi nesemnificativă și deci efortul suplimentar necesar determinării unei soluții optime a problemei nerelaxate (2.2.2), (cu componente întregi), nefiind justificat.

3 Sisteme automatizate de proiectare în industria de confecții

3.1 Concepte generale

O etapă nouă în evoluția metodelor de proiectare a produselor vestimentare este marcată de introducerea sistemelor automatizate de proiectare (S.A.P.) în industria de confecții. Utilizarea S.A.P. în domeniul proiectării îmbrăcămintei are următoarele avantaje:

scurtarea ciclului de concepere a modelului;

optimizarea proceselor de creare și proiectare a produsului;

asigurarea unei calități superioare a produsului la etapele inițiale ale procesului de realizare;

creșterea productivității muncii;

folosirea rațională a materiilor prime prin posibilitatea de selectare a variantei optime de încadrare;

asigurarea unei schimbări rapide a modelelor;

crearea premiselor de restructurare a procesului de proiectare a îmbrăcămintei.

Actualmente numeroase firme străine au abordat proiectarea constructivă a îmbrăcămintei în sistem automat de calcul, oferind pe piață sisteme și subsisteme specializate pentru crearea modelelor noi și realizarea prototipurilor de produs. Dintre acestea se remarcă firmele: INVESTRONIKA (Spania), GERBER, (S.U.A.), COMPUTER DESIGN (S.U.A.), LECTRA SYSTEM (Franța), CYBRID (Marea Britanie), ASSYST (Germania), MICRODYNAMICS.

Printre cele mai moderne sisteme și subsisteme pot fi menționate următoarele:

sistemul informațional PDM (MICRODYNAMICS) conferă elasticitate fabricației și conține mijloace și dispozitive care asigură elaborarea unui nou model timp de 8 ore (o zi de muncă) de la realizarea schiței produsului până la confecționarea mostrei. În context poate fi menționat faptul că prin aplicarea metodelor tradiționale de proiectare constructivă un nou model se elaborează într-o perioadă mult mai lungă;

sistemul DAO, denumit Invest-Studio (INVESTRONIKA) realizat în mediul de programare WINDOWS pentru crearea, colorarea și prezentarea finală a modelelor din colecție. Sistemul este ușor de utilizat și permite realizarea unui număr mare de modele într-un timp scurt. Desenele pot fi modificate cu ușurință;

sistemele Accumark Accel, Accumark 800 AWS, Accumark Silhouette

(GERBER) pentru crearea tiparelor, gradarea și încadrarea șabloanelor;

Sistemele INVESTMARK PRO, INVESTMARK PLUS, INVESTMARK DS-LAN (INVESTRONIKA) pentru crearea tiparelor, gradarea și studierea posibilităților de încadrare. Corespund standardului care permite schimbul de tipare între tipuri diferite de sisteme CAD;

Comtens – această sistemă permite introducerea în calculator (prin digitiser sau scaner ) a șabloanelor constructive, redactarea lor și gradarea lor conform mărimilor și taliilor, optimizarea încadrărilor în regim automat și interactiv, imprimarea suprafeței încadrării reperelor la scară naturală (pe plotere), realizează producerea șabloanelor de control din electrocarton și alte operații.

Open CAD (LECTRA SYSTEM) stație grafică ce funcționează în mediul UNIX sau conform unor programe ca: MS DOS, VMS, Machintosh, WINDOWS, etc. Acesta poate lucra, cu programe de design, de șablonare, gradare și încadrare ale firmei LECTRA. Funcționarea în mediul UNIX îi permite exportul datelor pe alte sisteme interne, este ergonomică și modulară, poate fi ușor adaptată cerințelor întreprinderii.

Softul oferit de majoritatea firmelor lucrează cu schițe reprezentate în plan, alte variante de soft (de exemplu cei oferit de firma ASSYST) lucrează cu manechine tridimensionale pentru vizualizarea din diferite unghiuri a produsului creat și îmbrăcat. În urma cercetărilor efectuate în cadrul diferitelor instituții au fost formulate principiile de bază ale teoriei construirii produselor vestimentare în sistemul 3D și propusă o nouă metodă de proiectare a îmbrăcămintei. Această metodă presupune proiectarea automatizată a îmbrăcămintei utilizând baza de date tridimensionale ale corpului uman și formei exterioare a produselor. În corespondență cu metoda nouă se proiectează forma exterioară spațială a produsului după macheta corpului (tip sau individual). Astfel se creează posibilități de analiză și apreciere a modelelor noi pe baza imaginilor tridimensionale proiectate pe ecranul monitorului, excluzând etapele de croire și confecționare a prototipului. Teoria construirii tridimensionale a îmbrăcămintei creează premize pentru automatizarea completă a procesului de proiectare a acesteia. Se realizează următoarele lucrări:

proiectarea reprezentării spațiale a produselor pentru corpuri tip și corpuri individuale;

crearea diferitelor siluete ale îmbrăcămintei în sistemul 3D;

poziționarea liniilor constructive și constructiv decorative pe reprezentarea spațială a produsului;

realizarea șabloanelor produsului creat (în regim automat sau interactiv).

Metoda exclude procesul de gradare, șabloanele pentru diferite mărimi și talii se obțin prin procesul autonom de repetare a operațiilor de calcul și construcție a șabloanelor produselor pentru fiecare mărime și talie în parte. Diversificarea modelelor unui produs se realizează prin schimbarea valorilor parametrilor de modelare a formei (parametrii de gabarit și adaosurile de legeritate).

Diversificarea metodelor de proiectare a îmbrăcămintei, automatizarea proceselor de realizare a produselor, condițiile economice actuale în contextul cerințelor crescânde ale purtătorilor către produse impun reorganizarea procesului de proiectare a îmbrăcămintei.

3.2 Sistemul INVESMARK

3.2.1 Rețeaua INVESMARK

Sistemul INVESMARK NT reprezintă mai multe stații de lucru bazate pe rețeaua Microsoft cu MS Windows. O astfel de rețea permite partajarea fișierelor, printerilor și a altor servicii. Planificat pentru Database Management System ales pentru Invesmark, baza de date a serverului trebuie să ruleze pe Windows NT. Sistemul de operare recomandat pentru stațiile de lucru este Windows 95 – chiar și dacă Windows 3.11 sau Windows NT sunt și acestea valide.

Fig. 1 Interconectarea componentelor sistemului Invesmark

O stație de lucru Windows care se dorește a fi conectată la rețeaua Microsoft trebuie să aibă – desigur – un adaptor de rețea instalat. Dar aceasta nu este suficient – trebuie de configurat opțiunea “Network” din Windows Control Panel. O astfel de configurare setează tipul adaptorului de rețea și protocoalele, serviciile susținute.

Structura de date a rețelei Invesmark NT este compusă din două părți, care interacționează, dar sunt independente:

Baza de date relațională

Directoriul partajat “\X”

Baza de date corespunde standardului SQL (relațional), care este compus dintr-un set de tabele relaționale, fiecare conținînd informație despre un tip particular. De exemplu, tabelul MARCADAS conține date referitor la marker-e. Fiecare “record” din acest tabel conține informații gen numele marker-ului, persoana care la creat, denumirile de modele și mărimile acestora, tipul țesăturii, lățimea, lungimea, etc..

Directoriul partajat “\X” stochează date CAD/CAM gen reper, stil, fișierele de marcare geometrică, etc..

Ambele părți, baza de date și mapa X sunt independente dar interlegate: fiecare element al bazei de date – un marker pentru instanță – este legat la un fișier geometric singular, care conține informația geometrică despre marker (file *.MRK)

Bineînțeles, fiecare parte are nevoie de cealaltă: De exemplu, pentru a desena un detaliu, programul PLOTWIN accesează primul baza de date și, de acolo, localizează în directoriul X fișierul care conține geometria reperului.

Datele din sistemul invesmark NT sunt localizate pe un disc al serverului de rețea pe care rulează Windows NT.

Serverul Invesmark este în același timp server pentru fișiere (stochează fișiere geometrice) și un server pentru baze de date (stochează baza de date și rulează rutinele bazei de date care controlează accesările concurente ale bazei de date).

Fiecare stație de lucru din sistem trebuie să dețină accesul deplin la ambele directorii partajate X și baza de date.

Fig. 2 Compoziția serverului Invesmark

Pentru a verifica dacă stația de lucru are acces la directoriul partajat aflat la distanță se verifică dacă softul Microsoft Network Client este permis în opțiunea Network din Control Panel.

Pentru avea acces la baza de date SQL aflată la distanță se cere:

Softul database server este instalat și configurat pe server.

Softul database client este instalat și configurat pe stația de lucru.

Interfața de rețea adecvată – în particular, NetBIOS – trebuie să fie încărcată și trebuie să funcționeze corect în ambele locuri. În cazul rețelei Microsoft NetBIOS-ul este implementat de protocolul NetBEUI. Astfel se va ști că protocolul NetBEUI este încărcat pe Network din Control Panel atît pe server cît și pe stația de lucru.

Programele Invesmark NT vor căuta geometria fișierelor în network drive definit în tabelele VOLUMES ale bazei de date. Acest disc în rețea trebuie să fie în directoriul partajat \X.

Discul de rețea implicit este X: .

Toate stațiile de lucru trebuie să aibă definit un disc X în rețea: reprezentat pe directoriul \X al serverului.

Fig. 3 Reprezentarea discului X pe directoriul \X al serverului.

Invesmark NT suportă două tipuri de baze de date relaționale.

SQLBASE de la Gupta Corporation

SQLSERVER de la Microsoft

Gupta SQLBASE este un sistem de baze de date care se instalează în mod normal în configurația stand-alone și în rețea cu mai puțin de 10 stații de lucru.

Baza de date Microsoft SQLSERVER va fi rezervată, în general, pentru instalații mari.

În dependență de sistemul bazei de date procedura de instalare este diferită.

Cerințele pentru o stație de lucru cu acces la informațiile de pe server sunt:

Stația de lucru “vede” server-ul prin rețea

Există un disc în rețea “X:” mapat în directoriul \X de pe server

Softul database este instalat și configurat

Protocul NetBEUI este permis și este protocolul definit implicit.

3.2.2 Programul MARKA

Programul MARKA este o aplicație a sistemului INVESMARK destinat pentru crearea tiparelor, gradarea și studierea posibilităților de încadrare, apărut ca răspuns la necesitățile din producția de confecții de a tăia sau desena detalii pe un anumit tip de material. În industria de finisare, piesele marcate sunt piese utilizate la întreprinderile de confecții, și șabloanele sunt tăiate automat sau manual într-un strat sau mai multe straturi de textile.

Prin aplicarea acestui program este perfecționat procesul de obținere a desfășuratelor în plan, se utilizează optim materia primă și se obține o calitate maximă.

Programul controlează corectitidinea respectării restricțiilor impuse marcării șabloanelor, astfel încît după tăiere, reperele sunt în ordinea corespunzătoare procesului de producere, și ele vor fi valide pentru produsul final care poate include repere din țesătură de bază, căptușeală, sau alte tipuri de materiale.

Ocazițional, utilizatorul poate dori să ignoreze sau să modifice unele dintre restricțiile impuse marcării, programul permite aceasta și, de asemenea, poate verifica în orice moment care piese n-au fost marcate corect.

În procesul încadrării, programul cumulează automatismul și interactivitatea, furnizează funcții pentru perfecționarea integrală a încadrărilor automate, sau a unui set de repere, precum și alte funcții ce permit utilizatorului să plaseze piese acolo și așa cum consideră de cuviință. Ține de competența utilizatorului de a alege strategia unei încadrări rapide și efective, cu minim efort și fără riscul de a pierde din calitate.

Separat de funcțiile actuale pentru încadrare, programul furnizează funcții pentru modificarea componenței șabloanelor (adăugarea, eliminarea, sau modificarea reperelor, stilurilor sau mărimilor) și funcții care oferă alternative geometriei pieselor.

3.2.2.1 Compoziția unei încadrări: repere, stiluri și mărimi

În industria textilă, o încadrare este generată pentru a croi repere dintr-un material în scopul producerii confecției de mărimea dată.

În aceeași încadrare pot fi incluse repere care aparțin diferitor tipuri de produse, însă care sunt din același tip de țesătură.

Uneori, pentru o utilizare mai eficientă a materialului disponibil, se realizează încadrări cu repere din diferite tipuri de materiale utilizate pentru mai multe confecții.

În primul caz reperele sînt grupate după aceeași mărime, această grupare de repere în Sistemul INVESMARK sunt cunoscute ca stiluri. În cazul al doilea, probabil este preferabil de a genera încadrări pentru producerea unui reper independent, fără ca reperele să facă parte din același stil. Aceste piese sunt considerate ca aparținînd unui stil cu o singură piesă.

Într-o încadrare fiecare apariție a unui stil este numită copie. În aceeași încadrare același stil poate figura de mai multe ori în aceeași mărime sau în mărimi diferite, codul copiei făcînd distincție între posibilele redundanțe. Numerotarea copiilor se face global pentru întreaga încadrare.

Compoziția unei încadrări se definește cînd ea este creată cu programul GENMA. Programul MARKA de asemenea furnizează funcții care permit adăugarea și eliminarea reperelor dintr-o încadrare; a unei singure piese, ca parte a unei copii deja existente în încadrare, sau a unui set a asestora necesar pentru a adăuga sau elimina o copie din încadrare.

3.2.2.2 Atributele unei încadrări

Încadrarea include atribute care definesc condițiile care afectează direct procesul de croire: lățimea țesăturii, țesăturile în carouri, adaosurile tehnologice; compoziția încadrării: tipul stratului, grosimea materialului; și altele care exprimă starea curentă a încadrării: lungimea, utilizarea curentă și maximumul care poate fi obținut dacă toate detaliile sunt încadrate menținînd lungimea curentă, numărul reperelor încadrate, numărul crestăturilor, suprafața și perimetrul reperelor încadrate.

3.2.2.3 Operațiile de încadrare

Operațiile de bază în procesul încadrării sunt deplasările aplicate reperelor din încadrare. Aceste mișcări pot fi rotații, simetrii și translări ale reperelor (efectuate în limitele regulelor de încadrare) pentru a optimiza plasarea lor pe material și pentru a garanta calitatea în croirea reperelor.

Alte operații incluse în sarcina de croire sunt transformările geometrice asupra reperelor:

a solicita un bloc, sau a extinde aria din jurul unui reper pentru a crea spațiul necesar tăierii,

separarea unui reper: divizarea unui reper în ordinea generării părților care vor fi plasate independent pe material. Divizînd un reper unele margini pot servi la reconstruirea reperului original.

plierea: poate fi convenabil să pliezi un reper atunci cînd materialul este tubular.

Programul MARKA oferă alte tipuri de operații care influiențează compoziția încadrării, să modifice careva atribute ale încadrării și regulile de croire sau restricțiile. Sunt și funcții care pur și simplu furnizează informații despre încadrare.

3.2.2.4 Regulile de croire

Prima regulă este că reperele plasate pe material un trebuie să se suprapună reciproc. Prin excepție, operatorul va fi apt să încalce această regulă (provizoriu poziționînd reperul, căutînd o mică suprapunere), și în acest caz, programul va atenționa că există repere plasate incorect.

Regulile de croire limitează sau impun restricții condițiilor de executare a operațiilor de croire definite de funcțiile de program. Regulile de croire utilizate sunt justificate de structura confecției actuale, caracteristicile țesăturii, sau dificultățile ce survin în procesul de tăiere a unor repere pe anumite tipuri de material.

Regulile de croire specifice structurii confecției sunt definite în stiluri în sistem, și în principiu, vor fi activate imediat la generarea încadrării. Atît programul GENMA cît și programul MARKA oferă posibilitatea schimbării acestor reguli. GENMA mai definește alte reguli referitoare la caracteristicile materialului (reguli de marcare, contracția reperelor, securitatea distanței din jurul unor repere ).

Aceste restricții depind de încadrare: tipul reperelor ce sunt croite, structura țesăturii utilizate, imprimată cu linii, puncte de control, sau care necesită încadrarea reperului și a modelului pe material.

Există reguli de croire care afectează încadrarea propriu-zisă ( distanță minimă de securitate, lipsa suprapunerilor parțiale), altele sunt specifice unor anumite repere (rotiri, întoarceri), altele afectează careva grupuri de repere din fiecare copie (simetrii dependente de restricții scurte, schițe egale pentru reperele date):

Pentru calitatea tăierii: Distanța de securitate

Pentru suprafețele țesăturii: Regulile de încadrare

Pentru structura confecției: de bază, căptușeală, adeziv

3.2.2.5 Generarea încadrării

Marcările sunt generate într-o aplicație specială care ace parte din sistemul INVESMARK : programul GENMA.

Acest program generează fișierele care conțin marker-ele. Fișierele – marker fac parte din sistemul relațional de baze de date, care acționează ca un fișier directoriu cu o cantitate mai mare de informație și funcții mai puternice dacît cele din files manager al sistemului de operare. Astfel marker-ele pot fi identificate în două moduri: după numele fișierului care le conține și după numele care ar fi putut fi creat în baza de date. Baza de date furnizează informații despre compoziția și atributele inerente ale marker-ului, marker-ele pot fi clasificate pe departamentele întreprinderii, sau alte criterii, păstrează date despre cine a creat sau modificat fiecare marker și cînd, sau observații pe care utilizatorul le consideră potrivite. Acest tip de informație poate fi folosit pentru a localiza sau selecta marker-ele necesare pentru lucru.

3.2.2.6 Selectarea marker-ului pentru croire

Marker-ul pentru croire va fi selectat în mod normal utilizînd programul MARKA. Alegerea poate fi realizată prin numele actual al fișierului, sau numele care identifică marker-ul.

3.2.3 Prezentarea unor funcții de bază

În continuare va urma o descriere a funcțiilor principale ale programului MARKA, pe baza unor demonstrări concrete.

Pentru a alege un marker simplu, se selectează opțiunea FILE și apoi funcția OPEN. În fereastra de dialog apărută (vezi anexa 1) se alege subdirectoriul DEMO. Click pe DEMO4.MRK.

Acum pot apărea două lucruri distincte, în dependență de configurarea sistemului:

a) Fereastra principală va fi divizată în două zone (vezi anexa 1):

– zona superioară va conține toate reperele ce formează încadrarea.

– fereastra inferioară este un frame ce reprezintă materialul (zona țesăturii).

Sectorul care conține detaliile necroite pot fi într-un meniu matricial.

Ele pot fi sub formă de repere (vezi anexa 1).

b) Fereastra program este divizat în trei zone de lucru: meniul matricial (stînga sus), zona reperelor (dreapta sus) și zona țesăturii (vezi anexa 1).

Scopul actual este finisarea plasării reperelor pe țesătură astfel încît să se obțină o utilizare optimă a ei, ținînd cont de restricțiile croirii într-o încadrare.

Pentru a respecta distanța de securitate, se verifică dacă opțiunea SECURITY DISTANCES din submeniul NESTING a meniului pincipal este activată și, dacă nu, se activează prin selectarea acestei funcții prin pointer (vezi anexa 1).

Pentru deplasarea reperelor dintr-o fereastră de lucru în alta, se face click de stînga pe reperul ales fără a-l mișca și se eliberează butonul. Reperul își schimbă culoarea și urmează mișcările cursorului (vezi anexa 1).

Cîmpurile marginii de sus a ferestrei indică (de la stînga la dreapta):

– distanța pînă la originea (scroll) pozițiilor vizibile de pe țesătură (mm).

– lățimea țesăturii (mm)

– lungimea de material utilizată (mm)

– utilizare (suprafața reperelor / suprafața totală acoperită)

– numărul reperelor încadrate / numărul total de repare

Reperul este plasat pe țesătură:

Pentru a elibera reperul – un click pe sectorul unde el va fi plasat. Programul va calcula situația optimă în dependență de restricțiile de încadrare (distanțele de securitate, direcția firului de urzeală, abaterile de la direcția nominală …), fără suprapuneri parțiale cu reperele deja plasate.

Această procedură poate fi continuată prin plasarea mai multor repere (vezi anexa 1).

Se poate întîmpla ca în procesul croirii schimbarea orientării unui reper poate duce la o utilizare mai bună a țesăturii. Totuși, aceste schimbări un vor fi permise de program în anumite situații, de exemplu:

se evită ca reperul să fie cusut pe partea greșită a țesăturii,

se evită ca reperele uneia și aceleeași confecții să apară în direcții diferite de croire, ceea ce cauzează o “culoare” nedorită a țesăturii,

se verifică dacă reperul va fi tăiat în corespundere cu direcția firului de urzeală. Dacă unele repere sunt simetrice( și nu le sunt impuse restricții de încadrare) pentru o utilizare mai bună a materialului, le putem obține prin funcțiile cheilor F3 și F4.

Fig. 4 Rezultatul aplicării cheilor F3 și F4

Simetria în raport cu axa X este obținută prin cheia F3; simetria în raport cu axa Y este obținută prin cheia F4.

Ca o completare a simetriei, reperele pot fi întoarse. Cînd un reper este preluat cu mouse-ul apare o bară de comandă (marginea inferioare a ferestrei principale) în care se indică unghiul în raport cu orizontala (vezi anexa 1).

Cheile utilizate:

– F1: o rotire mică în direcția acelor de ceasornic.

– F2: o rotire mică contra acelor de ceasornic.

– F5: o rotire mare în direcția acelor de ceasornic.

– F6: o rotire mare contra acelor de ceasornic.

Reperele pot fi plasate prin completarea altor repere de pe țesătură. Umplerea poate fi realizată prin click de stînga pe reperul care va fi deplasat, și, fără a-l elibera, se mișcă mouse-ul în direcția solicitată (vezi anexa 1).

Apoi click de stînga pentru ca reperul să fie plasat în direcția indicată. Programul îl va arunca în direcția indicată și reperul va fi plasat pe țesătură, în poziția cea mai apropiată posibil de suprafața completată deja (vezi anexa 1).

În anumite momente ale procesului de încadrare fereastra care reprezintă încadrarea poate fi dezordonată. Reperele pot fi reorganizate prin presarea butonului de pe bara de instrumente. Rezultatul va depinde de succesiunea criteriului activat (vezi anexa 1).

O posibilitate interesantă este aceea de a mișca un grup de repere ca și cum ar fi un bloc. Aceasta se realizează definindu-le ca fiind un GROUP.

Pentru a crea un grup, se selectează opțiunea PIECE din meniul principal, apoi- opțiunea GROUP care afișează un meniu cu funcțiile de editare a unui grup și se execută CREATE GROUP.

Se face click pe toate reperele care aparțin unui grup. Pentru a termina comanda, click în afara reperelor. Reperele care aparțin unui grup vor conține un text adițional care indică tipul grupului și ele toate vor fi mișcate împreună la încercarea de a mișca un reper din grup (vezi anexa 1).

După finisarea încadrării se poate verifica respectarea tuturor restricțiilor.

Verificarea încadrării se realizează prin intermediul funcțiilor din opțiunea FITTING a meniului principal.

Rezultatele sunt arătate într-o fereastră (vezi anexa 1).

3.3 Rolul tehnologiei în asigurarea competitivității întreprinderilor

În condițiile economiei de piață, și cu atât mai mult în condițiile tranziției spre economia de piață, când disfuncționalitatea constituie regula și nu excepția, micii producători pot să devină performanți și să se dezvolte numai dacă răspund pretențiilor noului sistem prin produse de calitate la prețuri de cost competitive și în pas cu moda.

O posibilă rezolvare ar constitui-o înființarea unor instituții de proiectare, care folosind cele mai noi metode de proiectare a îmbrăcămintei și de cercetare a pieții, să ofere contra cost servicii complete de proiectare constructivă a produselor vestimentare.

Avantajele acestui mod de organizare a procesului de realizare a îmbrăcămintei sunt evidente și pot fi observate din activitatea unor instituții similare din Franța și Japonia.

Pentru fiecare întreprindere care dorește să-și păstreze competitivitatea este important să înțeleagă direcția schimbărilor din tehnologie, să caute în funcție de posibilitățile pe care le are, să maximizeze beneficiile pe care le poate obține din aceste schimbări.

Schimbările tehnologice din industrie s-au accelerat în ultimii ani, manifestându-se următoarele tendințe principale:

1. Creșterea ritmului inovării. În industria ușoară inovațiile se concentrează în domeniul noilor tehnologii.

2. Răspândirea aplicării noilor tehnologii. Schimbările din domeniul electronicii și microelectronicii au deschis o gamă largă de posibilități:

• automatizarea proceselor de producție;

• automatizarea controlului proceselor;

• proiectarea asistată de calculator;

• utilizarea laserului și controlului numeric.

3. Flexibilitatea în răspunsul la nevoile consumatorilor. Noile tehnologii bazate pe electronică au făcut posibilă orientarea către producția integral informatizată care permite producătorului să răspundă rapid și flexibil la specificațiile clienților și la modificarea condițiilor existente pe piață.

4. Creșterea automatizării și diminuarea ponderii muncii necalificate. Creșterea gradului de automatizare, precum și accentuarea rolului proiectării, inovării și marketingului au făcut ca existența unor producători caracterizați de costuri de fabricație reduse să nu mai constituie un avantaj competitiv. Acest avantaj este dat în prezent nu de costuri de producție reduse, ci de rapiditatea și siguranța livrării, de calitatea ridicată și capacitatea de a diversifica la prima cerere gama de produse. Odată cu schimbările tehnologice au avut loc schimbări și în domeniul sistemelor de organizare și a metodelor utilizate în producție. Conceptele de sisteme flexibile de fabricație, producție sincronizată, "zero defecte", TQM au determinat reduceri considerabile ale costurilor, creșterea calității și flexibilității. În prezent mulți producători încearcă să implementeze aceste concepte în întreprinderile lor, însă introducerea unei tehnologii avansate nu garantează succesul întreprinderii. Importanța unei tehnologii sub raport concurențial nu este direct proporțională cu rolul ei în realizarea produsului, uneori schimbările tehnologice într-un proces auxiliar sau logistic pot influența mai mult produsul. Importante pentru competitivitatea întreprinderilor sunt nu numai tehnologiile din procesul propriu zis de fabricație, ci și cele vizând informatizarea și automatizare magaziilor și transporturilor, conducerii și organizării resurselor umane etc.

Importanța unei tehnologii pentru creșterea avantajului concurențial se estimează în funcție de rolul ei la reducerea costurilor de producție și de posibilitățile de creare a unor produse mai performante pe care le dă.

O problemă foarte importantă este identificarea tehnologiilor care contribuie la întărirea pozițiilor concurențiale și studii de cercetare pentru justificarea achiziționării de către întreprindere a noii tehnologii. Condițiile pe care trebuie să le îndeplinească o tehnologie pentru a satisface cererile de competitivitate ale întreprinderilor sunt:

să permită reducerea costurilor de producție;

avansul tehnologic obținut de firmă să fie durabil;

implementarea tehnologiei să necesite riscuri minime;

să confere celui care o implementează primul avantaje și după aplicarea ei de alte firme;

să influențeze favorabil politica întreprinderii.

Tehnologiile care nu îndeplinesc aceste condiții nu prezintă interes pentru întreprindere, iar implementarea lor ar putea duce la rezultate nefavorabile. De aceea orice conducător trebuie să-și aleagă cu grijă tehnologiile în funcție de strategia pe care dorește să o adopte și să o utilizeze în firma pe care o conduce.

4 Partea economică

4.1 Introducerea tehnologiilor informaționale noi în sfera de producție

Se consideră axiomă faptul că numai prin utilizarea tehnologiilor informaționale moderne producția poate fi asigurată cu produse concurențiale.

În momentul de față la majoritatea întreprinderilor industriale de confecții sunt instalate modele vechi de sisteme de calcul cu posibilități reduse, utilizate în general la rezolvarea problemelor locale.

În țările dezvoltate, spre deosebire de Moldova, se observă o largă aplicare a tehnologiilor informaționale pe baza utilizării computerelor moderne, produselor soft, mijloacelor de comunicare, ceea ce asigură un salt calitativ în producere și administrare. În acest scop cel mai frecvent se utilizează sistemul de operare Microsoft Windows, care s-a dovedit a fi optim pentru pregătirea documentelor, prelucrarea graficii, design pe calculator, precum și în activitatea colectivelor de muncă. În acest mediu se rezolvă problemele compatibilității mijloacelor hard și soft.

Situația grea din industria ușoară autohtonă este bine cunoscută, de aceea obținerea unei produceri stabile în condițiile actuale, este extrem de grea. Apare necesitatea acută de a produce transformări economice în condițiile economiei de piață, adică a unei concurențe mari a mărfurilor.

În condițiile actuale eficacitatea înaltă a muncii se determină nu numai din motive ideologice, cointeresarea materială a lucrătorilor, nivelul de mecanizare și automatizare a muncii, dar și în primul rînd prin capacitatea societății de a uiliza tehnologiile informaționale noi.

În particular, lipsa unei computerizări adecvate nu permite utilizarea într-o măsură suficientă a acelor segmente de piață ca lansarea produselor în serii mici sau producerea confecțiilor de calitate superioară cu marca comercială de firmă.

La cumpărarea mijloacelor tehnice trebuie de acordat atenție aspectelor prioritare:

Computerul achiziționat trebuie să corespundă în întregime problemelor pentru care este destinat, atît după productivitate cît și după echipamentele periferice necesare. Se recomandă procurarea unei tehnici cu rezerve de capacități: volum de memorie, viteză de procesare, etc., așa precum produsele soft apărute pe piață necesită, de regulă, sisteme mari de resurse.

Trebuie să fie asigurate susținerea tehnică și deservirea de garanție, precum și serviciile de întreținere, declarat de firma-vînzător, precum și date independente despre siguranța tehnicii.

Prin utilizarea unei tehnici sigure și a mijloacelor soft moderne se micșorează cheltuielile pentru întreținerea tehnică, care frecvent sunt comesurabile sau chiar depășesc cheltuielile necesare procurării computerilor și programelor soft.

Printre toate problemele care trebuie rezolvate în procesul computerizării producției textile, un loc aparte îi revine sarcinii de automatizare a pregătirii modelelor către lansarea în producție atît în ceea ce privește complexitatea, cît și după importanța pe care o deține în structura de producere.

Sistemul elaborat în teza de diplomă este o parte componentă a structurii de automatizare a procesului industrial la întreprinderile de confecții reprezentat în anexa 2.

4.2 Etapele de proiectare

La elaborarea lucrării s-a aplicat un algoritm bine întemeiat, în scopul micșorării timpului de lucru. Succesiunea acestui algoritm este următoarea:

Pregătirea pentru descrierea sarcinii.

Familiarizarea cu descrierea sarcinii.

Elaborarea algoritmului.

Scrierea programului conform schemei-bloc elaborate.

Depănarea programei.

Pregătirea documentației conform sarcinii.

Cheltuielile de muncă depuse pentru realizarea acestui proiect se calculează după formula :

t = to + tf + ta + ts + td + tdoc

to – cheltuielile de timp obținute la pregătirea pentru descrierea sarcinii.

tf – cheltuielile de timp obținute la familiarizarea cu descrierea sarcinii.

ta – cheltuielile de timp obținute la elaborarea algoritmului.

ts – cheltuielile de timp obținute la scrierea programului conform schemei-bloc elaborate.

td – cheltuielile de timp obținute la depănarea programei.

tdoc – cheltuielile de timp obținute la pregătirea documentației conform sarcinii.

Cheltuielile de timp pentru familiarizarea cu descrierea sarcinii, ținând cont de calificarea programatorului:

Tf=Q*B/(85*k)

Unde: Q=qc(1+p) numărul convențional de instrucțiuni în program

q – numărul de operatori. Numărul de operatori este de 1350. Estimarea acestui număr s-a efectuat cu ajutorul conducătorului de diplomă.

c – coeficient de complexitate (c =1.2, deoarece complexitatea programului este medie).

p – coeficient de corecție a programului în timpul elaborării. Deoarece problema a fost discutată la începutul elaborării softului, schimbările adăugătoare au fost minime (p = 0.05).

B – coeficientul majorării cheltuielilor de lucru în urma insuficienței descrierii problemei. Deoarece cheltuielile utilizate pentru finisarea programului au fost minime, acest coeficient e egal cu 1.2.

k– coeficientul de calificare a programatorului (k = 0.8, deoarece stajul de lucru e pînă la 2 ani).

Q=1450*1,2*(1+0,05)=1827

Tf= 1827*1,2/(85*0,8)=32,2

Cheltuielile de timp pentru elaborarea algoritmului:

Ta=Q/22*k=1827/(22*0,8)=103,8

Cheltuielile de timp pentru scrierea programului conform schemei-bloc elaborate

Ts=Q/23*k=1827/(23*0,8)=99

Cheltuielile de timp pentru depănarea programei

Td=Q/4,3*k=1827/(4,3*0,8)=531

Cheltuielile de timp pentru pregătirea documentației conform sarcinii

Tdoc=Tm+Tr=Q/(19*k)+0,75*Q/(19*k)=1,75*1827/(19*0,8)=210

Deoarece am lucrat asupra programului câte 8 ore pe zi, rezultă că timpul de lucru Tlucru se v-a calcula în felul următor :

tzi = 8 ore/zi ;

t = to + tf + ta + ts + td + tdoc =16+32,2+103,8+99+531+210=992.

Tlucru= t / tzi= 992 / 8 =124 zile

4.3 Evaluarea economică a sistemului proiectat

Tab. 7

Costul materialelor utilizate

Mărimea salariilor lunare pentru diplomant și conducătorul diplomei au fost stabilite la 220.00 lei și 540.00 lei respectiv. Mai jos, conform timpului de lucru vom calcula salariile respective pe toată durata cercetării.

S(C) == 687,3 (lei);

S(D) == 1240 (lei);

unde:

Nzl – numărul de zile lucrate.

Conform datelor calculate anterior Nzl(D) = 124.

Deoarece consultațiile oferite de către conducătorul diplomei aveau loc în primele 20 săptămâni o dată pe săptămână și în ultimele 4 săptămâni de două ori, rezultă că Nzl(C) = 28.

Nzlt – numărul de zile lucrătoare într-o lună.

Sl – salariile lunare.

Tab. 8

Prezentarea salariilor de bază

Salariile suplimentare constituie 12% din salariile de bază.

Tab. 9

Prezentarea salariilor suplimentare

Defalcările în fondul social de asigurare sunt calculate în procente de la salariul lunar și cel suplimentar, și constituie 31% :

(1927,3+231,3) * 31% = 669,2 (lei)

În cheltuielile pentru elaborarea softului dat mai intră și cheltuielile legate de folosirea calculatorului. Calculatorul este mediul principal, cu ajutorul căruia s-a realizat proiectul de diplomă.

t = (ta + ts + td + tdoc )/8 = (103,8+99+531+210)/8 =118 (zile)

Așadar, conform etapelor de proiectare calculatorul a fost utilizat pe o perioadă de 118 zile, timp în care s-au desfășurat o serie de activități. Deoarece procurarea soft-ului și hard-ului în domeniul Tehnologiilor Informaționale este considerată investiție capitală, vom amortiza aceste cheltuieli timp de 2 ani, fiindcă aceste produse sunt supuse uzurii morale rapide. Să calculăm cheltuielile de energie electrică:

Ec = P C N ore

unde:

Ec – suma de bani cheltuită pentru energia folosită;

P – Puterea de lucru a calculatorului;

C – prețul (costul) unui kwatth;

Nore – numărul de ore.

Luând în considerație că am lucrat 8 ore pe zi atunci N =118 8= 944(ore)

Ec = P C N = 0,4 0.65 944 = 245,4 (lei)

Norma de amortizare constituie 30% din costul calculatorului, care este de 5100 lei, iar imprimanta 1400 lei.

Amortizarea calculatorului și a imprimantei se calculează conform formulei:

Acalculator= 5100*0.3*118/365 = 494,6 (lei)

Aimprimanta= 1400*0.2*118/365 = 90,5 (lei)

Tab. 10

Cheltuieli pentru hard

Cheltuielile folosite pentru utilizarea calculatorului includ amortizarea și cheltuielile de energie, 830.5 lei.

În timpul realizării sarcinii vor apărea cheltuielile suplimentare. Aceste cheltuieli sunt legate de gestionare, deservire, remunerarea muncii aparatului de conducere, cheltuieli legate de repararea încăperilor de producție, a inventarului, protecția muncii și a mediului ambiant etc.

Mărimea cheltuielilor de regie constituie 140% de la salariul de bază și cel suplimentar:

2158.6140% = 3022 (lei)

În continuare se vor estima toate cheltuielile suportate pentru elaborarea softului. Ele vor include următoarele cheltuieli:

Cheltuieli pentru materiale .

Cheltuieli pentru salariul de bază.

Cheltuieli pentru salariul suplimentar.

Defalcări în fondul social.

Cheltuieli pentru procurarea calculatorului și a imprimantei.

Cheltuieli de regie.

Tab. 11

Cheltuieli suportate

Tab. 12

Estimarea prețului programului

4.3 Determinarea eficienței economice a proiectului

Aflăm rata profit – vînzări:

Din rezultatele obținute se vede că utilizarea sistemului este argumentată economic, iar beneficiul obținut este de 1671.7. În cazul măririi numărului de cereri a acestui soft, la vânzarea lui va fi necesar de inclus numai cheltuielile de multiplicare care sunt foarte mici comparativ cu costul lui. În rezultat vom obține un supraprofit, ceea ce ar fi foarte rentabil pentru programator.

5 Protecția muncii

Această teză de diplomă este dedicată elaborării unui pachet de programe de introducere și prelucrare a informației. Apare problema de protecție a muncii programatorilor și utilizatorilor acestui pachet de programe. Deoarece lucrul cu acest sistem se efectuează cu ajutorul terminalelor video, trebuie examinate cerințele de protecție muncii lucrând cu terminale video, în particularitate cu Calculatoare Electronice (CE) și diferite dispozitive periferice care se utilizează în Centrele de Calcul (CC) în procesul de lucru. Natural că introducerea și utilizarea largă a CE are în afară de părți pozitive și unele acțiuni negative asupra utilizatorilor.

Programatorii, operatorii CE și alți lucrători a CC sunt supuși acțiunilor factorilor de producere periculoși și dăunători, cum sunt nivelul zgomotului înalt, cantitatea insuficientă a luminii naturale, neajunsul iluminării locului de muncă, temperatura ridicată a mediului exterior, diferite tipuri de radiație și altele.

Acțiunea factorilor nefavorabili, numiți mai sus, aduce la micșorarea capacității de muncă, ce este provocată de oboseală. Apariția și dezvoltarea oboselii este legată de schimbări care se petrec în creierul omului în timpul executării lucrului, cu reacții de frână în scoarță cerebrală. De exemplu zgomot mare provoacă greutăți în constatarea semnalelor de culori, micșorează rapiditatea de percepție a culorii, vederea, tulbură percepția informației vizuale, micșorează capacitate de a efectua mișcări rapide și fixe, micșorează productivitatea de lucru cu 5-12%, și încă aduce la înrăutățirea auzului.

Aflarea omului în zonele de influență combinată a diferitor factori dăunători mai mult timp poate aduce la îmbolnăvirea profesională.

Pentru crearea condițiilor de muncă favorabile în CC este necesar de luat în considerație particularitățile psihofiziologice a omului și condițiile de igienă generală. Un rol important joacă planificarea locului de muncă, care se petrece în conformitate cu cerințele de comoditate a executării lucrului, economisirea energiei și timpului operatorului, utilizarea rațională a spațiilor de producere, respectarea regulilor de protecție muncii.

5.1 Zgomotul

Zgomotul este unul din factori care influențează omul când el lucrează cu CE, aceasta este condiționat de funcționarea dispozitivelor ce sunt necesare în CC.

Sursele principale de zgomot în încăperi amenajate cu tehnica de calcul sunt imprimantele, tastatura, instalații pentru condiționarea aerului, dar în CE – ventilatoarele sistemelor de refrigerare și transformatoare.

La influența zgomotului pe un timp îndelungat la colaboratorii CC se observă micșorarea atenției, dureri de cap, se micșorează capacitatea de muncă. În documente de însoțire a utilajului ce produc zgomot se aduc normele timpului de lucru la acest utilaj.

În conformitate cu STAS 12.1.003-91 “Zgomot. Cerințele generale de protecție” caracteristica de normă a zgomotului locurilor de muncă sunt nivelurile presiunii de sonor (zgomot). Nivelurile accesibile a zgomotului, lucrând cu CE, sunt prezentate în tabelul 13.

Tab. 13

Nivelurile admisibile a zgomotului

Pentru micșorarea zgomotului la locurile de muncă se efectuează următoarele acțiuni:

Arhitectural-planificative. Clădirile se proiectează și se construiesc în așa mod ca la locurile de muncă să nu fie depășit nivelului admisibil. Întrucât sistemul va fi utilizat la CC existent aici se poate de obținut micșorarea zgomotului amplasând în încăperi vecine utilajului cu zgomot ridicat.

Tehnico-organizatorice. Pentru micșorarea zgomotului la CC se efectuează reparația și ungerea utilajului. Se poate de aranjat utilajul în așa fel ca el să facă mai puțin zgomot.

Acustice. În CC se instalează podele și poduri tehnologice. Distanța între podul de bază și podul fixat în balamale 0,5-0,8 m, iar înălțimea podelei tehnologice 0,2-0,6 m.

5.2 Microclimatul

Deoarece CE sunt surse de eliminare a căldurii, ce poate ajunge la mărirea temperaturii și micșorarea umidității aerului. În încăperi se atrage atenție la controlul parametrilor microclimatului în Săli de Calcul (SC). În SC mărimea medie a eliminărilor de căldură constituie 310 W/m2. Eliminările de căldură de la instalații de iluminare tot sunt mari, mărimea specifică a lor este 35-60 W/m2. În afară de aceasta la microclimatul încăperi încă influențează surse exterioare de eliminare a căldurii, cum sunt căldura de la radiația solară ce intră prin fereastră, și afluența căldurii prin construcții de barieră ce nu sunt transparente.

Asupra corpului omului și lucrului utilajului a CC influențează foarte mult umiditatea aerului relativă. La umiditatea aerului egală cu 40% lenta magnetică devine mai fragilă, se mărește uzura capilor magnetice și apare câmpul magnetic static la mișcarea purtătorilor de informației în CE.

La efectuarea controlului locurilor de muncă se măsoară temperatura, umiditatea relativă și viteza de mișcare a aerului în încăperi, totodată se efectuează măsurări la începutul, mijlocul și sfârșitul perioadelor calde și rece a anului.

Se măsoară temperatura și umiditatea aerului cu psihometre aspiratoare, iar viteza de mișcarea a aerului – cu electro-anemometre, catatermometre. Ordinea de măsurare a indicilor microclimatului se stabilește în conformitate cu STAS 12.1.005-91. Parametrii se normează după acest STAS și sunt prezentați în tabelul 14.

Tab. 14

Normele microclimatului

În acest tabel se aduc parametrii pentru categoriile de lucru 1a (mai puțin de 120 kcal/oră, lucrul șezând) și 1b (de la 120 până la 150 kcal/oră, lucrul șezând), deoarece lucrul programatorului sau operatorului se poate atribui la una din aceste categorii.

Pentru crearea la locuri de muncă a condițiilor meteorologice bune se efectuează condiționarea și ventilarea aerului, utilizarea ventilatoarelor înăuntru CE pentru a reduce eliminările de căldură. Utilajul se aranjează în așa fel ca influența căldurii asupra corpul omului va fi cea mai mică.

5.3 Iluminarea

La lucrul cu CE o importanță mare are crearea mediului de iluminare optimal, adică organizarea rațională iluminatului natural și artificial în încăperi și la locuri de muncă, deoarece lucrând la CE încărcarea în general cade pe organe de vedere. Dacă omul lucrează mai mult de o jumătate a zilei de lucru la CE la el se observă înrăutățirea vederii, ce constituie 62-94%. Asta în primul rând este oboseala ochilor, dureri foarte mari și simțul de nisip în ochi, mâncărime și senzație de usturare în ochi. Totodată senzațiile dureroase în ochi apar în general la sfârșitul zilei de lucru. Din această cauză toate locurile de muncă cu CE se amplasează în locuri ce sunt protejate de căderea luminii difuzate pe ecranul terminalului. Pentru asta se utilizează încăperi cu iluminarea unilaterală (într-o singură direcție), totodată ferestrele trebuie să fie cu storuri sau jaluzele pentru excluderea efectului de orbire și strălucirea ecranului terminalului.

Iluminarea artificială a locului de muncă se efectuează în felul următor, nivelul iluminării locului de muncă trebuie să corespundă caracterului de lucru vizual, iluminarea încăperii să nu depindă de timpul de afară, fluxurile de lumină să aibă direcția optimală și utilajul trebuie să fie economic, inofensiv, durabil și simplu în exploatare.

La instalarea iluminatului artificial se fac următoarele măsurări:

iluminarea la locuri de muncă;

caracterul de strălucire a ecranului, mesei;

strălucirea petelor reflectate în ecran.

Se efectuează măsurări de control a iluminării și strălucirii la locuri de muncă cu diferite terminale care sunt în încăperi și care se află în diferite condiții de iluminare, acolo unde sunt plângeri ale personalului. Măsurarea iluminatului se efectuează în timpul întuneric a zilei.

Punctele de control pentru măsurările iluminatului la locuri de muncă se amplasează:

în centrul ecranului;

pe tastatură;

pe document în planul amplasării lui;

pe masă în zona de lucru.

Efectuarea măsurărilor se efectuează în conformitate cu STAS 2.4.940-91. Măsurarea caracterului de strălucire a ecranului se efectuează la strălucirea ecranului nu mai puțin de 35 c/m2. Iluminarea locului de muncă se normează după SniP II-4-91 și depinde de caracterul lucrului vizual, contrastul obiectului, fonului și tipul fonului.

5.4 Radiația

Intensitatea radiației Roentgen de energie joasă se controlează la locuri de muncă cu monitoare, care lucrează sub tensiunea la cinescop 15 kV și mai mult. Norma nivelului de radiație roentgen este 100 mcP/oră, dar în timpul de azi se utilizează mai mult monitoare cu nivelul radiație mai mică, ce aduce la micșorarea influenței factorilor dăunători asupra programatorului sau operatorului. La efectuarea tezei de licență a fost utilizat monitorul cu tensiunea la cinescop mult mai mică de 15 kV, și de aceea acest factor nu a fost înregistrat de dispozitiv, adică a fost mai puțin de normă.

Încă se măsoară și se normează intensitatea radiației ultraviolete (la lungimea de undă 336 nm) și infraroșie (la lungimea de undă 700 – 1050 nm) ce influențează asupra omului, nu trebuie să depășească 10 W/m2.

Tab. 15

Niveluri admisibile de tensiune

Radiația electromagnetică se normează după componente electrice (50 V/m) și magnetice (50 A/m) de aflare în această zonă de radiere în timp de 8 ore. Tensiunea înaltă a câmpului electric între monitorul și operatorul aduce la efecte neplăcute. La distanța de 5 – 30 cm de la monitor tensiunea nu trebuie să depășească nivelul admisibil după norme, ce sunt stabilite în dependența de timpul aflării la locul de muncă. Niveluri admisibile de tensiune sunt prezentate în tabelul 5.3.

Controlul radiației de toate tipurile se efectuează în conformitate cu regulile ce sunt expuse în îndrumare speciale.

5.5 Parametrii vizuali ai imaginii

Efectuând controlul asupra condițiilor de lucru la locuri de muncă cu monitoare trebuie să fie măsurate și evaluate următorii parametri ai imaginii:

deformarea imaginii;

contrastul de strălucire a imaginii;

variația strălucirii elementelor simbolului;

lungimea, lățimea, raportul lățimii la lungimea;

lățimea liniei de contur a simbolului;

modulație de strălucire a rasterului;

distanța între cuvinte, rânduri;

vibrația și fugă (licărire) imaginilor.

Prezența sau lipsa licăririi imaginii se stabilește după metode experimentale sau de calcul. Metoda experimentală permite de evaluat și vibrația imaginii. Prezența vibrării se determină prim metodă măsurărilor directe. Celelalte caracteristici a ecranului se stabilesc după rezultatele măsurărilor directe și indirecte. După control, parametrii se compară cu recomandațiile prezentate în tabelul 16.

Tab. 16

Parametrii monitorului

Tab. 16 (continuare)

Totodată o importanță mare are rezoluția ecranului, care se determină de tipul adaptorului grafic (CGA, EGA, VGA, SVGA), adică cât mai mare este rezoluția ecranului atât mai bună este imaginea.

5.6 Efecte psihofiziologice

Lucrul operatorilor cere încordarea mintală și emoțională foarte mare, concentrarea atenției și responsabilitatea de lucrul efectuat. Operatorii foarte des suferă de diferite stări proaste a vederii, dureri de cap, dureri de mușchi în regiunea spatelui. În afară de asta, în mare măsură se exprimă senzația oboselii și încordarea mintală în timpul lucrului; ei nu se simt odihniți după somn de noapte.

Sarcina asupra vederii și caracterul încărcării lucrului provoacă la operatori disfuncția stării a analizatorului de vedere și sistemei nervoase centrale. În procesul de lucru la dânșii se micșorează rezistența vederii clare, sensibilitatea electrică și eficiența analizatorului de vedere, și încă apar disfuncții a mușchilor ochilor.

Sunt interesante cercetările stării psihofiziologice a operatorilor de introducere a datelor, care efectuează lucrul monoton în timp de 2 ore în condiții favorabile de muncă. Tot odată s-a arătat că din 80% de persoane supuse experienței capacitatea de lucru și activitatea mintală se micșorează peste 45 – 60 minute de lucrului neîntrerupt. În afară de aceasta la persoanele supuse experienței la sfârșitul zilei de lucru sa mărit timpul de reacție și cantitatea greșelilor la executarea problemelor. S-a micșorat frecvența de contractare a inimii de la 64 până la 40 batăi/min; la 74% persoane s-a tulburat bilanțul mușchilor ochiului.

Efectuarea multor operații la CC cer încărcarea îndelungată a mușchilor spatelui, gâtului, mâinilor și picioarelor ce aduce la apariția oboselii. Motive principale de apariția oboselii sunt înălțimea irațională a suprafeței de lucru, masei și scaunului, lipsa spatelui de sprijin și brațelor, unghiuri incomode de îndoire în articulațiile umărului și cubitului, unghiul de înclinare a capului, repartizare incomodă a documentelor, monitoarelor și tastaturii, lipsa spațiului și suportului pentru picioare.

5.7 Securitatea electrică

Utilajul CE este foarte periculos pentru operatori, deoarece lucrând la acest utilaj operatorul poate să atingă unele părți care sunt sub tensiune. Trecând prin om curentul electric efectuează influența optică, biologică termică, ce poate aduce la traumă electrică (STAS 12.1.009-91). O importanță mare pentru emiterea cazurilor neplăcute și periculoase are organizarea corectă a exploatării utilajului electric, efectuarea lucrărilor de montare și profilactică.

5.7.1 Calcularea protecției “legarea la pământ”

Calculul protecției prin legare la pământ constă în determinarea parametrilor de pământ: numărul, dimensiunile și plasarea electrozilor, bătuți în pământ, care asigură rezistența prizei de pământ (și concomitent tensiunea de atingere) nu mai mare decât permisă de normative (Rp <= 4 Ω pentru rețele ce tensiune U <= 1000 V).

Să efectuăm calculele prizei de pământ:

Alegem tipul electrozilor și numărul lor. Vom utiliza 5 bare metalice de 3m lungime și diametrul de 10cm;

Determinăm rezistența specifică calculată a solului în Ωm:

c = m

unde: m – rezistența din literatura informativă m = 700 Ωm;

– coeficient climatic 2 = 1,56.

c = 700 1,56 = 1092 Ωm

Rezistența electrozilor naturali este Rnat = 5,6Ω;

Determinăm rezistența prizei artificiale, care în complex cu rezistența electrozilor naturali nu trebuie să fie mai mare decât cea normală (Rnor = 4Ω ):

Ra = (Rnor Rnat)/(Rnat – Rnor) = 5,6 4 / (5,6 – 4) = 14Ω

Determinăm rezistența unui electrod vertical bătut în pământ cu considerarea rezistenței specifice calculate a solului:

Rel = c / 2l ln( 4l / d ) =

= 1092000 / (2 3000) ln(4 3000 / 100) =

= 57,96 4,79 = 277,5Ω

Din literatură găsim coeficientul de randament al electrozilor el în dependență de raportul distanței dintre ei la lungimea lor. el = 0,83;

Determinăm rezistența bandei de unire a electrozilor între ei ținând cont de coeficientul de randament al bandei el. În cazul nostru b = 0,56:

Rb = c / 2lb ln( 2l2 / bH ) =

= 1092000 / (2 76000 0,56) ln( 2 760002 / (20 16000)) =

= 51,37Ω

Ținând cont că priza de pământ artificială este formată din barele bătute în pământ și banda de legătură găsim rezistența totală electrozilor:

Rel.t = (Ra Rb)/(Ra – Rb) =

= 277,5 85,75 / (277,5 – 85,75) = 63,04Ω

Utilizând coeficientul de randament al electrozilor verticali, găsim definitiv numărul lor

n = Rel / (el Rel.t) = 277,5 / (0,83 63,04) 5

5.8 Locul de muncă la efectuarea lucrului șezând

Standardul (STAS 12.2.032 – 78) stabilește cerințele ergonomice generale la locuri de muncă la efectuarea lucrului șezând la proiectarea utilajului nou sau modernizarea proceselor de producție și utilajului existent.

5.8.1. Principii generale

Locul de muncă la efectuarea lucrului șezând se organizează la lucrul simplu, care nu cere mișcarea liberă a lucrătorului și la lucrul de greutate medie în cazuri cauzate de particularitățile de proceselor tehnologice.

Construcția locului de muncă și amplasarea concomitentă a elementelor (scaun, organe de conducere, mijloace de primire a informației) trebuie să corespundă cerințelor tehnologice și caracterului de lucru.

Locul de muncă trebuie să fie organizat în conformitate cu cerințele standardelor, condițiilor tehnice și (sau) indicațiilor metodice de securitatea

muncii.

Fig. 5. Zona accesibilă a câmpului motor în plan vertical

5.8.2. Caracteristicile de dimensiune a locului de muncă

Construcția locului de muncă trebuie să asigure efectuarea operațiilor de lucru în limitele zonei accesibile a câmpului motor. Câmpul motor în plan vertical și orizontal pentru corpul omului cu mărimea medie sunt prezentate pe desenele 5.1. și 5.2.

Efectuarea operațiilor, “des” și “foarte des”, trebuie să fie asigurată în limitele zonei liber accesibile și zonei optimale a câmpului de motor, ce sunt prezentate pe desenul 5.3.

Observație: Frecvența îndeplinirii operațiilor se consideră: foarte des – două sau mai multe operații pe minut; des – mai puțin de două operații pe minut, dar mai mult de două operații pe oră; rar – nu mai mult de două operații pe oră.

La proiectarea utilajului și organizarea locului de muncă trebuie să fie luați în considerație indicatorii antroponometrici a femeii (dacă lucrează numai femei) și al bărbatului (dacă lucrează numai bărbați); dacă utilajul este deservit și de femei și de bărbați – indicatori medii generale a femeilor și bărbaților.

Fig. 6 Zona accesibilă a câmpului motor în plan orizontal

La construcția utilajului de producere și la locul de muncă se asigură poziția optimală a lucrătorului care se atinge reglând:

înălțimea planului de lucru, scaunului și spațiului pentru picioare. Parametrii reglați se aleg după nomogramă, prezentată în figura 8;

înălțimea scaunului și suportului pentru picioare (la înălțimea ne reglată a planului de lucru). În acest caz înălțimea planului de lucru se stabilește după nomogramă (figura 8), pentru lucrător cu înălțimea 1800 mm. Poziția optimală de lucru pentru lucrători cu înălțime mai mică se atinge mărind înălțimea scaunului și suportului pentru picioare cu mărimea egală cu diferența între înălțimea planului de lucru pentru lucrător cu înălțimea 1800 mm și înălțimea planului de lucru optimal pentru înălțimea lucrătorului dat.

Fig. 7 Zona efectuării operațiilor manuale și amplasarea

organelor de conducere

Unde:

1 – zona de amplasare a organelor de conducere cele mai importante și des utilizate

(zona optimală a câmpului motor); 2 – zona de amplasare a organelor de conducere cele mai des utilizate (zona de accesibilitate liberă a câmpului motor); 3 – zona de amplasare a organelor de conducere rar utilizate (zona accesibilă a câmpului de motor).

Construcția scaunului reglabil a operatorului trebuie să corespundă cerințelor STAS 21889-76.

În cazurile când nu se poate de reglat înălțimea planului locului de muncă și suportului pentru picioare, se permite proiectarea și fabrica utilajului cu parametri nereglabili a locului de muncă. În acest caz valorile parametrilor se definesc după tabelele 17, 18 și figura 9.

Forma planului de lucru a utilajului trebuie de instalat în dependență de caracterul lucrului îndeplinit. Ea poate fi pătrată, poate să aibă o tăietură pentru lucrător sau adâncitură pentru mașini de birou.

Suportul pentru picioare trebuie să fie reglabil după înălțime. Lățimea trebuie să fie nu mai mică de 300 mm, lungimea – nu mai mică de 400 mm. Suprafața suportului trebuie să fie zâmțată. Iar la margina din față trebuie să fie o bordură.

Fig. 8 Nomograma înălțimii planului locului de muncă pentru diferite tipuri

de lucru

Tab. 17

Înălțimea planului de lucru la organizarea locului de muncă

Tab. 17 (continuare)

Fig. 9 Spațiu pentru picioare (lățime nu mai puțin de 500 mm)

a – distanța dinte scaun și capătul de jos al planului de lucru > 150 mm;

h – înălțimea spațiului pentru picioare nu mai puțin de 600 mm

Tab. 18

Înălțimea scaunului în dependență de sexul lucrătorului

5.8.3 Cerințele de amplasare a organelor de conducere

La lucrul cu două mâini organele de conducere se amplasează în așa mod ca mîinile să nu să se intersecteze.

Organele de conducere pe suprafața locului de muncă în plan orizontal trebuie să fie amplasate conform următoarelor cerințe:

organe de conducere foarte des utilizate trebuie să fie amplasate în zona 1 (vezi fig. 7);

organele de conducere des utilizate și mai puțin importante se amplasează în zona 1 și 2 (vezi fig. 7);

organele de conducere rar utilizate se amplasează nu mai departe de zona 3 (vezi fig. 7).

La amplasarea organelor de conducere în plan vertical trebuie de îndeplinită conform cerințelor din tabelul 13. și figurile 5 și 8. Organele de conducere pot fi amplasate mai sus de 1100 mm în caz dacă amplasarea până la nivelul menționat nu este posibilă din motive tehnice. Așa organe de conducere trebuie să fie utilizate rar.

Organele de conducere de depanaj trebuie amplasate în zona accesibilă a câmpului motor, totodată trebuie de prevăzut mijloace speciale de notificare și preîntâmpinare a declanșării spontane sau neintenționate în conformitate cu STAS 12.2.003-74.

5.8.4 Cerințele la amplasarea mijloacelor de reprezentare a informației

Mijloacele de reprezentare a informației foarte des utilizate, care necesită citirea rapidă și precisă, trebuie de amplasat în plan vertical sub unghi 15 de la linia normală de privire și în plan orizontal sub unghi 15 de la planul sagital (figurile 10 și 11).

Fig. 10 Zone de observare vizuală în plan orizontal

Mijloacele de reprezentare a informației des utilizate, care necesită citirea mai puțin precisă și rapidă, se poate de amplasat în plan vertical sub unghi 30 de la linia normală de privire și în plan orizontal sub unghi 30 de la planul sagital.

Mijloace de reprezentare a informației rar utilizate trebuie de amplasat în plan vertical sub unghi 60 de la linia de normală privire, în plan orizontal sub unghi 60 de la planul sagital (la mișcarea ochiului și învârtirea capului).

Fig. 11 Zone de observare vizuală în plan vertical

Concluzii

Utilizarea rațională a materialelor e deosebit de importantă în domeniile de construcție și proiectare, inclusiv în industria textilă, pentru care ponderea cheltuielilor de materie primă și de bază în prețul de cost al produselor textile alcătuiește 83%-85%, iar al celor de blană – pînă la 90%.

S-a demonstrat că sistemele automatizate cu aplicarea calculatoarelor în procesele pregătitoare pentru croire contribuie la micșorarea cheltuielilor de timp cu 60%-80%, timpul necesar pentru obținerea schițării încadrarărilor pentru modelele noi și a deșeurilor de material dintre șabloane în încadrare.

Calcularea suprafețelor pentru încadrări, parte componentă procesului de pregătire către croire, soluționată în lucrarea de față, oferă la etapa dată de elaborare, avantajele enumerate mai sus.

Acest rezultat a fost datorat în esență tehnicii de programare aplicate.

Pentru construirea modelului matematic, complexitatea problemei a constat în găsirea modalităților de croire a rulourilor definite prin mulțimea M de soluții ale sistemului de restricții:

Din punct de vedere practic luarea în considerare a eventualității determinării mulțimii M poate fi inacceptabilă datorită numărului inaccesiv de mare de soluții ale sistemului dat. Determinarea prealabilă a mulțimii M este evitată, folosind metoda programării dinamice. Algoritmic problema se rezolvă printr-o alternanță a metodei Simplex și a relațiilor de recurență a problemei rucsacului prin metoda programării dinamice. Astfel se reduc necesitățile de memorie și se asigură obținerea soluției optime pe o cale rațională și eftină.

Trebuie de menționat faptul că optimizarea procesului de pregătire către croire este posibil doar cu transformarea lui prin introducerea sistemelor de calcul. În țările dezvoltate aceste transformări au început încă din anii 1970, perfecționîndu-se continuu, ajungînd la utilizarea unor programe ce include întreg procesul de confecționare a îmbrăcămintei dar care însă costă peste 70000 $ SUA. Acest preț nu este accesibil pentru întreprinderile de profil de la noi. De aceea, elaborarea unor sisteme de programatorii locali ar fi mult mai specifice proceselor autohtone de confecționare a produselor vestimentare și mult mai ieftine, adică mai accesibile. Ținînd cont de cele expuse mai sus, în lucrare s-a proiectat un așa sistem care ar fi util și necesar anume pentru întreprinderile de confecții din Moldova.

La îndeplinirea tezei de diplomă s-a respectat următoarea succesiune de operații:

s-a analizat specificul metodei dinamice și domeniile în care poate fi aplicată;

s-a alcătuit modelul matematic al problemei de croire puse;

s-a studiat algoritmul de rezolvare a problemei croirii unidimensionale;

s-a adaptat algoritmul Simplex în vederea aplicării lui în soluționarea sarcinii;

s-a studiat metoda programării dinamice de rezolvare a problemei rucsacului;

s-a alcătuit programul OptimalCut după algoritmul de rezolvare;

s-a efectuat un studiu al sistemelor automatizate din industria de confecții;

s-a analizat sistemul Invesmark de proiectare și croire, în particular programul Marca, destinat soluționării optime a încadrărilor;

s-a evaluat economic programul și s-au cercetat condițiile ergonomice și de securitate tehnică.

Bibliografie

Мoraru V. “Introducere în optimizarea liniară”, Chișinău, 1997

Tancea I. “Metode de optimizare. Algoritmi. Programe”, Cluj-Napoca, 1976

Smadici C. “Cercetare operațională” Universitatea Al. I. Cuza, Iași, Fac. de Mat., 1985

Strave P. “Matematici speciale cu aplicare în economie”, Scrisul românesc. Craiova, 1982

Pintilie E., Loghin C. “Proiectare tehnologică asistată de calculator în confecții”, Ed. Dosoftei, Iași 1996

Bonciu F. I. “Noile tehnologii și comerțul internațional”, București 1995

Кудрявцев Е. М. “Исследование операций в задачах, алгоритмах и программах”, М. Радио и связь, 1984

www.comtense.ru

www.tuIasi.ro

Anexe

Anexa 1 (Programul Marca)

Fereastra de dialog OPEN

Fișierul DEMO4.MRK. Două zone de afișare

Fișierul DEMO4.MRK. Două zone de afișare – altă alternativă

Fișierul DEMO4.MRK.. Trei zone de afișare

Activarea submeniului NESTING

Deplasarea reperelor

Plasarea reperelor în zona încadrării

Întoarcerea reperelor

Completarea reperelor existente în încadrare

Ajustarea automată a reperului plasat în raport cu celelalte repere

Reorganizarea reperelor

Grupuri de repere

Mișcarea unui grup de repere

Verificarea încadrării

Anexa 2 (OptimalCut)

Fereastra inițială a programului

Fereastra rezultantă în urma activării butonului bifat

Fereastra rezultantă în urma activării primului buton

Afișarea rezultatelor finale

Afișarea rezultatelor finale și a celor intermediare

Anexa 3 (Scema-bloc a programului OptimalCut)

Anexa 4 (Listingul programului OptimalCut care rezolvă problema croirii)

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <values.h>

#include "optim.h"

#include "intro.h"

#define NUMAR 60

void printtable(float t[200][200],int n,int k)

{

/*

Preluarea datelor din tabelul t în RichEdit- ul reREZULT în formă tabelară

*/

AnsiString s;

if(fmMain->simplex){

for(int i=0;i<n;i++){

s="";

for(int j=0;j<k;j++) s+=ftoa(table[i][j])+" ";

fmMain->reRESULT->Lines->Append(s);

}

fmMain->reRESULT->Lines->Append("");

}

}

// Descrierea funcțiilor pentru rezolvarea algoritmului Simplex

int minimDELTA(float table[NUMAR][200], int nebasic[NUMAR], int numnebasic, int delta)

{

int index=nebasic[0];

float minim=table[delta][index];

int minimindex=index;

for(int i=1;i<numnebasic;i++){

index=nebasic[i];

if(table[delta][index]<0)

if(minim>table[delta][index]){

minim=table[delta][index];

minimindex=index;

}

}

return minimindex;

}

int Verify(float table[NUMAR][200], int nebasic[NUMAR], int numnebasic, int delta)

{

int index;

for(int i=0;i<numnebasic; i++){

index=nebasic[i];

if(table[delta][index]<0) return 1;

}

return 0;

}

int minimBETA(float table[NUMAR][200], int pj, int n)

{

float minim=MAXINT;

float minimint;

int pi=-1;

for(int i=0;i<n;i++)

{

if(table[i][pj]>0){

minimint=table[i][0]/table[i][pj];

if(minim>minimint){

minim=minimint;

pi=i;

}

}

}

return pi;

}

void copytable(float table[NUMAR][200], float ntable[NUMAR][200], int l, int k)

{

for(int i=0; i<l;i++)

for(int j=0; j<k; j++)

ntable[i][j]=table[i][j];

}

void calcul(float table[NUMAR][200], float ntable[NUMAR][200],

int pi, int pj, int l, int k )

{for(int i=0;i<l;i++)

for(int j=0;j<k;j++)

if(j!=pj && i!=pi)

ntable[i][j]=(table[i][j]*table[pi][pj]-table[i][pj]*table[pi][j])/table[pi][pj];

else{ if(j==pj && i!=pi) ntable[i][j]=0;

if(i==pi) ntable[i][j]=table[i][j]/table[pi][pj];

}

}

void modifybasic(int basic[NUMAR], int nebasic[NUMAR], int pi, int pj

, int numnebasic)

{

int nb=basic[pi];

basic[pi]=pj;

for(int j=0;j<numnebasic;j++)

if(nebasic[j]==pj) nebasic[j]=nb;

}

/**************************************/

void determineNEBASIC(int basic[NUMAR],int numbasic, int cols, int nebasic[NUMAR])

{

int neb=0;

for(int ki=1; ki<cols;ki++){

int j=0;

for(int i=0; i<numbasic;i++){

if(ki!=basic[i]) j++;

}

if(j==numbasic) nebasic[neb++]=ki;

}

}

/**************************************/

void simplex(float table[NUMAR][200],int basic[NUMAR], int rows, int cols, float newtable [NUMAR][200])

{

int pi,pj;

int numbasic=rows-1;

int numnebasic=cols-rows;

int nebasic[NUMAR];

determineNEBASIC(basic,numbasic,cols,nebasic);

while(Verify(table,nebasic,numnebasic,numbasic)){

pj=minimDELTA(table,nebasic,numnebasic,numbasic);

pi=minimBETA(table,pj,numbasic);

calcul(table,newtable,pi,pj,rows,cols);

modifybasic(basic,nebasic,pi,pj,numnebasic);

copytable(newtable,table,rows,cols);

}

}

/**************************************/

//Funcții de inițializare

void init(int index[NUMAR])

{

for(int i=0;i<NUMAR;i++) index[i]=-1;

}

void init_i(int index[])

{

for(int i=0;i<200;i++) index[i]=-1;

}

void null(float ex[NUMAR])

{

for(int i=0;i<NUMAR;i++) ex[i]=0;

}

void null_f(float ex[])

{

for(int i=0;i<200;i++) ex[i]=0;

}

void null_i(int ex[])

{

for(int i=0;i<200;i++) ex[i]=0;

}

// Funcții de rezolvare a problemei rucsacului

void id(int omega, int a[NUMAR], int index[NUMAR],int numbasic)

{

int ki=0;

for(int i=0;i<numbasic;i++)

if(a[i]<=omega) index[ki++]=i;

}

void calcVFM(int omega,int index[NUMAR],float f_omega[], float c[NUMAR],

int a[NUMAR], float valFORmax[NUMAR])

{ int i=0; int ki; int in;

while(index[i]!=-1)

{ ki=index[i++];

in=omega-a[ki];

valFORmax[ki]=c[ki]+f_omega[in];

}

}

int max(int omega,float valFORmax[],int numbasic,float f_omega[])

{ float maxim=-1;

int ind=0;

for(int i=0; i<numbasic; i++)

{

if(maxim+maxim*0.000001<valFORmax[i])

{maxim=valFORmax[i];

ind=i;}

}

f_omega[omega]=maxim;

return ind;

}

int frecventa(int i,int sol[])

{

int j=0;

int fi=0;

while(sol[j]!=-1)

if(i==sol[j++]) fi++;

return fi;

}

/***********************************/

float rucsac(int L, float c[], int a[],int numbasic, int solutieRUCSAC[],float f_omega[],int i_omega[])

{

int s,i=0;

int ind=L;

int index[NUMAR];

float valFORmax[NUMAR];

static int sol[200];

null_f(f_omega); null_i(i_omega);init_i(sol);

for(int omega=1;omega<=L;omega++)

{ init(index);null(valFORmax);

id(omega,a,index,numbasic);

calcVFM(omega,index,f_omega,c,a,valFORmax);

i_omega[omega]=max(omega,valFORmax,numbasic,f_omega);

}

while(ind>0){

sol[i]=i_omega[ind];

s=sol[i++];

ind=ind-a[s];

}

for(i=0;i<numbasic;i++)

solutieRUCSAC[i]=frecventa(i,sol);

return f_omega[L];

}

/**********************************/

void produsBA(float t[NUMAR][200],int a[],int l, int k, float vector[])

{

float s;

for(int i=0;i<l-1;i++){

s=0.0;

for(int j=1;j<=k-1;j++) s+=t[i][j]*a[i];

vector[i]=s;

}

}

/******************************************/

void equallength(char * d,int l,int f)

{int strl=strlen(d);

int i,t;

if(f) t=2;

else t=1;

if(strl<l){

i=strl;

for(int j=0;j<(l-strl-1)*2-t;j++)

d[i++]=' ';

}

d[i]='\0';

}

/******************************************/

void calcularePROBLEMA(int L,int l[],int b[],int rows,int cols,float table[NUMAR][200],int reguli[200][NUMAR],int basic[NUMAR])

{

float result[NUMAR][200];

static float c[NUMAR];

static int a[NUMAR];

static int solutieRUCSAC[NUMAR];

static float f_omega[200];

static int i_omega[200];

float f;

float vector[NUMAR];

for(int i=0;i<rows-1;i++)

for(int j=0;j<rows-1;j++)

if(i==j)reguli[i][j]=1;

else reguli[i][j]=0;

for(int i=rows-1;i<2*(rows-1);i++)

for(int j=0;j<rows-1;j++)

if(i-(rows-1)==j) reguli[i][j]=L/l[j];

else reguli[i][j]=0;

for(int i=0;i<rows-1;i++) table[i][0]=b[i];

for(int i=0;i<rows-1;i++)

for(int j=1;j<rows;j++)

table[i][j]=reguli[i][j-1];

for(int i=0;i<rows-1;i++)

for(int j=rows;j<=2*(rows-1);j++)

table[i][j]=reguli[i+rows-1][j-rows];

for(int i=0;i<=2*(rows-1);i++)

if(i<rows) table[rows-1][i]=0;

else table[rows-1][i]=1-L/l[i-rows];

for(int i=0;i<rows-1;i++){ basic[i]=i+1;a[i]=l[i];}

/**************************/

int iteratia=1;

AnsiString s;

char d[255];

while(1)

{

if(iteratia>=50) {copytable(result,table,rows,cols);break;}

/********** SIMPLEX **********/

char et[255];

sprintf(et,"Iteratia %d",iteratia++);AnsiString itera=et;

fmMain->reRESULT->Lines->Append(itera);

if(fmMain->simplex) fmMain->reRESULT->Lines->Append(" Tabela initiala:");

printtable(table,rows,cols);

if(fmMain->simplex){

s="Variabile basice: ";

for(int j=0;j<rows-1;j++){sprintf(d,"%d",basic[j]);equallength(d,5,1);s+=d;}

fmMain->reRESULT->Lines->Append(s);

fmMain->reRESULT->Lines->Append("");

}

simplex(table,basic,rows,cols,result);

if(fmMain->simplex) fmMain->reRESULT->Lines->Append(" Tabela rezultata:");

printtable(result,rows,cols);

if(fmMain->simplex){

s="Variabile basice: ";

for(int j=0;j<rows-1;j++){sprintf(d,"%d",basic[j]);equallength(d,5,1);s+=d;}

fmMain->reRESULT->Lines->Append(s);

fmMain->reRESULT->Lines->Append("");

}

getch();

/*** Se verifica daca in rezultatul rezolvarii problemei

SIMPLEX s-a gasit solutia problemei **************/

int i=0;int ki=0;

for(i;i<rows-1;i++) if(result[rows-1][i]>1) ki++;

// copytable(result,table,rows,cols);

if(ki==i){ copytable(result,table,rows,cols);break;}

/******* Determinarea lui c ********/

for(int i=1;i<=rows-1;i++) c[i-1]=1-result[rows-1][i];

/******* PROBLEMA RUCSACULUI ******/

f=rucsac(L,c,a,rows-1,solutieRUCSAC,f_omega,i_omega);/*f=f(L)*/

for(int i=0; i<rows-1;i++) reguli[cols-1][i]=solutieRUCSAC[i];

/****** TIPAR REZULTATE **********/

// AnsiString s;

if(fmMain->rucsac){

s=" w: ";//char d[255];

for(int j=0;j<=L;j++){sprintf(d,"%d",j);equallength(d,8,1);s+=d;}

fmMain->reRESULT->Lines->Append(s);

s=" f(w): ";

for(int j=0;j<=L;j++){sprintf(d,"%.2f",f_omega[j]);equallength(d,8,0);s+=d;}

fmMain->reRESULT->Lines->Append(s);

s="i*(w): ";

for(int j=0;j<=L;j++){sprintf(d,"%d",i==0?i_omega[j]:i_omega[j]+1);equallength(d,8,1);s+=d;}

fmMain->reRESULT->Lines->Append(s);

fmMain->reRESULT->Lines->Append("");

s="Solutia problemei rucsacului: ";

for(int j=0;j<rows-1;j++){sprintf(d,"%d",solutieRUCSAC[j]);equallength(d,5,1);s+=d;}

fmMain->reRESULT->Lines->Append(s);

fmMain->reRESULT->Lines->Append("");

}

printf("%d\n Solutia problemei rucsacului: ",cols);

for(int i=0; i<rows-1;i++)printf("%3d",solutieRUCSAC[i]);printf("\n");

/******************************/

getch();

//copytable(result,table,rows,cols);

if(f<=1){ copytable(result,table,rows,cols);break;}

/*** ADAUGARE DE COLOANA PENTRU NOUL TABEL SIMPLEX ***/

cols++;

produsBA(result,solutieRUCSAC,rows,rows,vector);

for(int i=0;i<rows-1;i++) result[i][cols-1]=vector[i];

result[rows-1][cols-1]=1-f;

copytable(result,table,rows,cols);

}

s=" SOLUTIA PROBLEMEI:";

fmMain->reRESULT->Lines->Append(s);

fmMain->reRESULT->Lines->Append("");

int dd;

int i=0;

char r[255];

while(i<rows-1){

dd=basic[i]-1;

sprintf(r,"%.0f",table[i++][0]);

equallength(r,5,1);

s=r;

s+=" bare cu regula de taire : ";

for(intj=0;j<rows-;j++){sprintf(d,"%d",reguli[dd][j]);equallength(d,5,1);s+=d;}

fmMain->reRESULT->Lines->Append(s);

}

float sum=0;

for(int i=0;i<rows-1;i++){

sum+=table[i][0];

}

fmMain->reRESULT->Lines->Append("");

s="Sunt necesare ";

sprintf(r,"%.0f",sum);

s+=r;

s+=" bare de lungime ";

sprintf(r,"%d",L);

s+=r;

fmMain->reRESULT->Lines->Append(s);

}

//–––––––––––––––––––––––––

void __fastcall TfmINTRO::Button2Click(TObject *Sender)

{

/*Metoda TfmINTRO::Button2Click este destinată pentru resetarea obiectelor-Edit baraLun, bareLun, bareNum, fiind necesară în cazul cînd se dorește reîntroducerea datelor și vidarea tuturor cîmpurilor sus menționate. Acest lucru se face prin atribuirea proprietății Text a acestor obiecte simbolul vid.*/

baraLun->Text="";

bareLun->Text="";

bareNum->Text="";

}

//–––––––––––––––––––––––––

bool TfmINTRO::verify_intro(AnsiString d11,AnsiString d22,AnsiString d33,int * r)

{

/*Metoda TfmINTRO::verify_intro este utilizată în metoda TfmINTRO::Button4Click pentru verificarea și conversia datelor introduse în obictele-edit baraLun, bareLun, bareNum. Astfel variabilele de intrare fiind d11, d22, d33, care reprezintă valorile proprietăților Text ale acestor obiecte. Rezultatul acestei metode se păstrează în variabilele globale: întregul L (lungimea rulourilor), tabelele l[] și b[] (lungimile fîșiilor și numărul de fîșii distincte respectiv). Din considerente de comoditate din algoritmul ce va urma vom avea nevoie de numărul de fîșii (bare) care se va păstra în variabila rows.

În caz dacă în urma verificării s-au depistat erori metoda va reîntoarce valoarea true, în caz contrar – valoarea false.*/

bool var=false;

int i=0; int ds,ds1;

int val;

AnsiString lungime;

AnsiString s;

if(d11=="" || d22 =="" || d33=="") {return true;}

if(verify1(d11,&val)) {baraLun->Text="";return true;}

else {d=itoa(val,d.c_str(),10);L=val;}

if(verify2(d22,l,&ds)){ bareLun->Text="1";return true;}

else{for(int i=0;i<ds;i++) if(l[i]>L) { bareLun->Text="2";return true;}

for(int i=0;i<ds;i++) if(frequency(l[i],l,ds)>1) { bareLun->Text="3";return true;}

while(i<ds)

{

s=itoa(l[i++],s.c_str(),10);

lungime=lungime+s;

lungime=lungime+" ";

}

lungimi=lungime;

}

s="";lungime=""; i=0;

if(verify2(d33,b,&ds1)){ bareNum->Text="1";return true;}

else{ if(ds!=ds1){ bareNum->Text="2"; return true;}

while(i<ds)

{s=itoa(b[i++],s.c_str(),10);

lungime=lungime+s;

lungime=lungime+" ";

}

cantitati=lungime;

}

*r=ds;

return var;

}

//–––––––––––––––––

void __fastcall TfmINTRO::Button4Click(TObject *Sender)

{

/* Metoda este activată prin apăsarea butonului Acceptare. Este destinată pentru verificarea și conversia, apelul funcției de calcul și afișarea rezultatelor în RichEdit- ul reRez. Dacă funcția verify_intro întoarce o valoare pozitivă, adică s-a depistat o eroare, este apelată forma fmAllarm, care ne atenționează despre eroarea comisă, altfel se apelează funcția calcularePROBLEMA și proprietatea ModalRezult al butonului Calcul se va seta în mrOk.

*/

AnsiString s;

d1=baraLun->Text;

d2=bareLun->Text;

d3=bareNum->Text;

//d=baraLun->Text;

//lungimi=bareLun->Text;

//cantitati=bareNum->Text;

if(verify_intro(d1,d2,d3,&rows))//1.Verificare si Conversie

{ Button1->ModalResult=mrNone;

TfmAllarm * fmAllarm = new TfmAllarm(this);

fmAllarm->ShowModal();

delete fmAllarm;

}else{

//2.APEL functie de calcul

fmMain->reRESULT->Clear();

fmMain->reRESULT->Lines->Append(" REZULTATE INTERMEDIARE");

fmMain->reRESULT->Lines->Append(" ");

rows++;

calcularePROBLEMA(L,l,b,rows,2*rows-1,table,reguli,basic);

fmMain->reRez->Clear();

//3.Afisare dupa configurare

int dd;int i=0;char r[255];char dc[255];

while(i<rows-1){

dd=basic[i]-1;

sprintf(r,"%.0f",table[i++][0]);

equallength(r,5,1);

s=r;

s+=" bare cu regula de taire : ";

for(int j=0;j<rows-1;j++) {sprintf(dc,"%d",reguli[dd][j]);equallength(dc,5,1);s+=dc;}

fmMain->reRez->Lines->Append(s);

}

float sum=0;

for(int i=0;i<rows-1;i++){

sum+=table[i][0];

}

fmMain->reRez->Lines->Append("");

s="Sunt necesare ";

sprintf(r,"%.0f",sum);

s+=r;

s+=" bare de lungime ";

sprintf(r,"%d",L);

s+=r;

fmMain->reRez->Lines->Append(s);

Button1->ModalResult=mrOk;

}

}

//–––––––––––––––––––––––––

void __fastcall TfmINTRO::Button1Click(TObject *Sender)

{

/*

Dacă proprietatea ModalRezult este mrOk, atunci are loc afișarea conform configurației setate

*/

if(Button1->ModalResult==mrOk){

fmMain->calculat=true;

fmMain->Height=321;

if(fmMain->simplex || fmMain->rucsac) {fmMain->Width=481;fmMain->reRESULT->Visible=true;}

else fmMain->reRESULT->Visible=false;

fmMain->Labelrez->Caption="DATE INITIALE:";

fmMain->Edit1->Text=d;

fmMain->Label1->Caption="Lungimea barei:";

fmMain->Label3->Caption="Lungimile barelor mici:";

fmMain->Edit2->Text=lungimi;

fmMain->Label5->Caption="Cantitati de bare mici:";

fmMain->Edit3->Text=cantitati;

}

}

//–––––––––––––––––––––––––

void __fastcall TfmINTRO::FormCreate(TObject *Sender)

{

/*

La crearea formei date înălțimea formei fmMain ia valoarea de 79 px

*/

fmMain->calculat=false;

fmMain->Height=79;

}

//–––––––––––––––––––––––––

Similar Posts

  • Spectacole ale Naturii

    SPECTACOLE ALE NATURII Printre cele mai spectaculoase tablouri de sunet și culoare pe care ni le oferă natura, fenomenele atmosferice pot fi considerate, pe bună dreptate, ca fiind foarte reprezentative. În atmosferă se produc fenomene acustice deoarece atmosfera este un mediu elastic în care se propagă undele sonore. Cel mai puternic sunet de natură meteorologică…

  • Proiectarea Interioarelor Unei Case de Locuit In Orasul Balti

    PROIECT DE LICENȚĂ PROIECTAREA INTERIOARELOR UNEI CASE DE LOCUIT ÎN OR. BĂLȚI ADNOTARE Proiectul de licență prezintă o casă de locuit amlsată în orașul Bălți. Casa are 2 nivele, etajul 1 cuprinde zona unde famili petrece cel mai mult timp, adică bucătăria, biroul, salonul, și etajul 2 cuprinde zona de odihnă,adică dormitoarele și baia. Suprafața…

  • Analiza Variatiei Continutului In Argila al Colectoarelor de Varsta X de pe Structura Baicoi

    CUPRINS INTRODUCERE………………………………………………………………………………………………2 CAPITOLUL 1. Metode de determinare a conținutului în argilă al rocilor rezervor(colector)………………………………………………………………………………………………4 Prin metode directe CM și Probe Sită…………………………………………………………….12 Din diagrafia geofizică…………………………………………………………………………………15 1.2.1. Carotaj electric……………………………………………………………………………………..16 1.2.1.1.Carotajul electric special………………………………………………………………………18 1.2.2. GR – gamma rey……………………………………………………………………………………20 CAPITOLUL 2. Studiu de caz- Structura Băicoi…………………………………………………..21 2.1. Geologia regiunii ……………………………………………………………………………………….21 2.1.1. Stratigrafie și Litologie………………………………………………………………………….23 2.1.2. Tectonica…………………………………………………………………………………………….24 2.1.3. Condiții de…

  • Analiza Stadiului Actual Privind Reducerea Consumul de Energie Electrica

    Analiza stadiului actual privind reducerea consumul de energie electrica Sporirea reducerii consumului de energie electrica se poate realiza pe mai multe cai , incepand de la educarea utilizatorilor in respectarea unor norme pentru economisirea energiei electrice , continuand cu folosirea electrocasnicelor de ultima generatie , izolarea cladirilor , pierderile ce se produc in modul stand-by…

  • Bazele Procesului Tehnologic de Filtrare In Camp de Forte Centrifugal

    PROIECTAREA OPTIMĂ A INSTALAȚIILOR DE FILTRARE SEDIMENTARE PE BAZA MODELĂRII PROCESELOR TEHNOLOGICE Cap. 1. Bazele procesului tehnologic de filtrare în câmp de forțe centrifugal Filtrarea 1.1.1. Filtrarea ca operație de separare Filtrarea ca operație tehnologică de separare a sistemelor eterogene fluid-solid în fazele componente cu ajutorul unui strat filtrant cu structură poroasă care reține faza…

  • Sistemul de Deplasare a Unui Pod Rulant cu Sarcina de 30tf

    CUPRINS Capitolul I SISTEME DE DEPLASARE. ………………………………………………………5 1.1. Generalități. …………………………………………………………………….5 1.2. Teoria generală a deplasării macaralelor. …………………………………………6 1.3. Scheme cinematice ale sistemelor de deplasare ……………………………………7 1.4. Construcția și montajul roților de rulare …………………………………………..9 1.5. Funcționarea sistemului de deplasare al podului. ……………………………….11 Capitolul II PROIECTAREA SISTEMULUI DE DEPLASARE AL PODULUI RULANT DE 30 TF. …………………………………………………13 2.1.Calculul…