Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
EXAMEN MNI 5-9.docx
1. EXAMEN MNI
CURSUL 6
Cercetările operaţionale (CO) sunt o ramură a matematicilor aplicate
care utilizează diferite metode pentru a atinge soluţii optime sau
aproape optime pentru probleme complexe
Probleme tip ale CO
➢Probleme de alocare: distribuirea şi repartizarea resurselor.
➢Optimizări.
➢Teoria stocurilor.
➢Teoria reînnoirii utilajelor-echipamentelor şi fiabilitate.
➢Programarea dinamică.
➢Teoria aşteptării.
➢Probleme de ordonanţare şi de ordonare (Pert şi drum critic)
➢Probleme de drumuri şi reţele.
➢Probleme de competiţie (teoria jocurilor).
➢Probleme de căutare.
➢Probleme de decizie
Etapele unei cercetări operaţionale [KOL95]
De obicei departamentul management al unei firme identifică
problema de CO pe care o rezolvă analistul CO, de obicei acesta
are rol de consultant.
1. Definirea problemei şi formularea ei. Este definit clar scopul
studiului bazat pe CO, într-o primă etapă, rolul consultantului CO este
de a ajuta departamentul management să-şi clarifice obiectivele, apoi
acesta trebuie să identifice variantele decizionale care pot fi filtrate de
limitările de capital, forţă de muncă, tehnologiile existente etc.
2. Elaborarea modelului. Consultantul CO dezvoltă modelul
matematic al problemei. Limitările, restricţiile trebuie traduse în
termeni matematici. În multe cazuri scopurile pot fi cuantificate în
expresii matematice care trebuie maximizate/minimizate.
Alternativele decizionale sunt variabilele problemei.
3. Soluţia modelului. Metoda de rezolvare a modelului trebuie să fie
2. relativ simplă. Nu sunt rare situaţiile în care nu există metodă de
rezolvare şi aceasta trebuie dezvoltată, eventual apelându-se la
euristică, sau se revine la etapa a 2-a şi se revizuieşte modelul.
4. Analiza sensibilităţii. Frecvent valorile numerice pe baza căruia
consultantul CO a elaborat modelul matematic sunt aproximative.
Este important să se determine cum se modifică soluţia la variaţia
datelor de intrare. Pentru multe probleme standard s-au elaborat
tehnici care rezolvă problema analizei sensibilităţii.
5. Evaluarea modelului. După ce a fost obţinută soluţia consultantul
CO determină dacă acesta răspunde cerinţelor firmei,este realist,
poate fi implementată.
6. Implementarea studiului CO de către firmă. Managementul firmei
decide cum va implementa rezultatele studiului.Uneori se întâmplă ca
acesta să fie ignorat din cauza proastei comunicări între management
şi consultantul CO sau din cauza măsurilor prea radicale pe care le
propune, de cele mai multe ori din ignorarea unor limitări/restricţii ale
problemei
DEFINIRE OPTIMIZĂRI
În matematică, termenul de optimizare sau de programare matematică
se referă la studiul unor probleme în care se caută
maximizarea/minimizarea uneia sau mai multor funcţii reale (funcţii
scop, funcţii obiectiv) în condiţiile în care variabilele aparţin unei
mulţimi determinate de limitarea unor resurse (restricţiile problemei)
Structura unei probleme de programare matematică (PM) este
formată din patru elemente de bază:
1. Funcţia/iile obiectiv (FO) care trebuie maximizată/e/minimizată/e.
De exemplu în producţie se urmăreşte maximizarea profitului,
minimizarea costului, minimizarea consumului de energie,
maximizarea productivității.
2. Variabilele/necunoscutele problemei. De exemplu în producţie
variabilele problemei pot fi cantităţile diferitelor materiale,
semifabricate sau timpii necesari desfăşurării unor operaţii.
3. Restricţiile care limitează valorile variabilelor la anumite mulţimi.
De exemplu în producţie timpii de execuţie nu pot avea valori
3. negative, cantităţile disponibile de materiale, semifabricate sunt
limitate. Restrictiile au forma unor inecuatii, ecuatii.
4. Parametrii problemei. Sunt date de intrare care, în general pot fi
modificate, de exemplu preţuri de materii prime, materiale
didponibile, consumuri specifice
Deci o problemă de minimizare/maximizare în programarea
matematică impune determinarea componentelor vectorului
variabilelor problemei
X=[x1, x2, ... ,xn]T
care minimizează/ maximizează funcţia obiectiv
F(X) → minim/maxim
În prezenţa restricţiilor
ri(X) {≥; = ; ≤} o, i=1,2, ... ,m
CURSUL7
ETAPELE SCRIERII UNUI PROGRAM
(exemplificate prin aplicația din slide-ul anterior)
1. Se scrie numele programului urmat între paranteze rotunde de lista
parametrilor formali despărțiți prin virgule, după care se introduce
simbolul de atribuire
2. Din grupul Programming clic pe sau pe tasta ] pentru introducerea
unei structuri, dacă se repetă operația Mathcad generează în
continuare mai multe astfel de structuri. Într-una se poate scrie doar o
instrucțiune
3. Pentru exemplul din slide-ul anterior se scrie numele variabilei
contor n urmată de simbolul de atribuire specific programelor
Mathcad prin sau tasta {. Pentru inițializarea contorului în dreapta
acestuia se scrie 0
4. Se introduce o nouă structură apăsând tasta Enter.
4. 5. Se inserează instrucțiunea repetitivă FOR, în placeholder-ul din
stânga simbolului este numele indexului iar în partea dreaptă o VPA
cu rație 1, completată pentru generalitate cu valoarea de start ORIGIN
și ultima valoare calculată cu funcția last(v).
6. În placeholder-ul corpului instrucțiunii FOR se inserează
instrucțiunea condițională IF pentru selectarea elementelor mai mici
decât a și indexarea acestora prin variabila n.
7. Pentru afișarea ultimei valori a variabilei n se apasă de mai multe
ori tasta Space până este cuprinsă toată structura FOR.
8. Se apasă tasta Enter și paceholder-ul se completează cu numelE
variabilei de ieșire n
Reguli de elaborare a programelorMathcad 3.0
Un program Mathcad poate apela orice funcție predefinită, sau
5. creată de utilizator, variabile definite de utilizator, alte programe, cu
respectarea condițiilor de vizibilitate. În lista parametrilor formali pot
fi introduse și nume de funcții.
Instrucțiunile de programare se introduc doar prin intermediul
simbolurilor din grupul paletei Programming, sau prin hot keys, nu
prin scrierea lor caracter cu caracter.
Pe o linie de program Mathcad se poate scrie doar o instrucțiune.
Ca orice expresie, un program Mathcad returnează o valoare de
natură scalară, vectorială, matriceală, matriceală imbricată sau șir de
caractere (string). Aceasta este în general returnată de ultima
instrucțiune executată de program. Sunt posibile mai multe ieșiri din
program, prin întreruperea programului, cu instrucțiunea RETURN
O variabilă definită într-un program este locală programului, deci
nu este vizibilă in exteriorul corpului acestuia.
În programele Mathcad poate fi aplicată recursivitatea.
Într-un program Mathcad este posibilă utilizarea VPA doar cazul
instrucțiunii FOR.
Pentru a introduce comentarii în program se pot utiliza string-
uri prin instrucțiunea error
Operatorul de asignare (atribuire) se poate utiliza doar
in corpul unui program Mathcad. Acesta se insereaza din grupul
Programming, sau cu tasta [ { ];
OPERATORI CONDIȚIONALI ÎN MATHCAD PRIME 3.0
În Mathcad Prime 3.0 există patru operatori condiționali: if, else, else
if și also if. S-a renunțat la otherwise existent în versiunile mai vechi,
care a fost înlocuit cu else și în plus au fost introduși else if și also if
care permit o flexibilitate mărită în programare.
Operatorul if ( sau tasta })
6. Sintaxa:
Dacă condiția nu este satisfăcută se execută următoarea linie a
programului.
Operatorul if-else
Sintaxa:
Operatorul else if
Operatorul else if (altfel dacă) poate fi utilizat doar dacă urmează
după instrucțiunea if . Nu este posibilă utilizarea împreună a
operatorilor else if și also if cu același operator if
7. Operatorul also if
La fel ca operatorul else if (altfel dacă) operatorul also if (de
asemenea dacă) poate fi utilizat doar dacă urmează după
instrucțiunea if Nu este
posibilă utilizarea împreună a operatorilor else if și also if cu același
operator if.
OPERATORI REPETITIVI ÎN MATHCAD 3.0
Operatorul FOR ( sau combinația de taste Ctrl+Shif+”)
Operatorul FOR este folosit când se cunoaște numărul de cicluri.
Uzual iterațiile sunt realizate de VPA, dar poate fi utilizat un vector
8. Operatorul WHILE ( sau combinația de taste Ctrl+])
Instrucțiunea WHILE se utilizează uzual dacă nu se cunoaște numărul
de cicluri, ieșirea din calculele repetitive făcându-se când nu mai este
îndeplinită condiția. Aceasta trebuie să se refere la o variabilă,
expresie care se modifică în corpul
ciclului, fiindcă în caz contrar ciclul rulează la infinit. Dacă inițial
condiția nu este satisfăcută expresia nu este evaluată niciodată
9. INSTRUCŢIUNI PENTRU CONTROLUL EXECUŢIEI PROGRAMULUI
Mathcad pune la dispoziţia utilizatorului trei instrucţiuni cu rol de
întrerupere a rulării programului, enumerate mai jos, în ordinea
descrescătoare a efectului:
1. RETURN întrerupe programul;
2. BREAK întrerupe un ciclu;
3. CONTINUE întrerupe o iteraţie.
Instrucţiunile RETURN, BREAK, CONTINUE se inserează din paleta
Programming sau cu combinaţiile de taste: [Ctrl]+ [], respectiv
[Ctrl]+ [{ ], respectiv [Ctrl]+ [[].
Ca şi în cazul celorlalte instrucţiuni de programare este interzisă
inserarea prin tastatură literă cu literă.
Instrucţiunea RETURN
Instrucţiunea RETURN permite întreruperea rulării programului şi
returnarea unei valori calculate, oriunde în corpul programului.
Sintaxa:
RETURN expresia sau şirul de caractere care se returnează
Deseori, instrucţiunea RETURN se utilizează în combinaţie cu
instrucţiunea IF
RETURN expresie returnată IF condiţia (expresia booleană)
Instrucţiunea BREAK
Instructiunea BREAK se utilizeazã în corpul instructiunilor ciclice FOR,
sau WHILE pentru intreruperea ciclului şi executarea instrucţiunii
imediat urmatoare după ciclu.
Sintaxa:
Instrucţiunea BREAK se utilizează în combinaţie cu instrucţiunea IF:
10. BREAK IF condiţia (expresia booleană)
Instrucţiunea CONTINUE
Instrucţiunea CONTINUE se utilizează în corpul instrucţiunilor ciclice,
pentru întreruperea unei iteraţii a
ciclului şi executarea instrucţiunii imediat următoare din ciclu.
Sintaxa:
La fel ca instrucţiunile anterioare, CONTINUE se utilizează în
combinaţie cu instrucţiunea IF:
CONTINUE IF condiţia (expresia booleană)
CURSUL8
Interpolarea constă în găsirea unei funcţii, F(x), care să permită,
pentru valori oarecare a lui x, situate în intervalul [x1,xn], estimarea
valorilor funcţiei f(x). O condiţie necesară pentru determinarea
11. funcţiei de interpolare, F(x), este coincidenţa cu funcţia f(x) în valorile
nodale (F(x) trece prin puncte).
Interpolarea se recomandă a fi utilizată când:
− valorile experimentale sunt relativ precise,
neafectate de erori semnificative;
− numărul de valori experimentale este relativ mic,
nerespectarea acestei condiţii, conduce la obţinerea unor
relaţii complexe, greu de utilizat;
− funcţia f(x) este cunoscută, dar expresia ei este
complicată şi/sau foarte greu de evaluat şi manipulat.
Prin extrapolare se înţelege operaţia matematică ce
constă în găsirea unei funcţii, F(x), care să permită
estimarea valorilor funcţiei f(x), pentru valori oarecare a
lui x, situate în afara intervalului în care sunt determinate
punctele nodale, (x < x1 )U(xn < x).
INTERPOLAREA LINIARĂ
Interpolarea liniară reprezintă cea mai simplă formă de interpolare care
unește printr-un segment de dreaptă punctele de sprijin
adiacente.
Interpolarea liniară poate genera erori mari în cazul unor funcții cu
variații rapide.
În Mathcad 3.0. valorile de interpolare liniară se determină cu funcția
linterp.
Sintaxa funcției linterp(Vx, Vy, x):
- Vx, Vy – reprezintă doi vectori coloană, Vx cu elemente reale, Vy cu
elemente reale sau complexe, cu aceleași dimensiuni (n linii × 1
coloană). Vectorii Vx, Vy conțin valorile absciselor și respectiv a
ordonatelor, pentru n puncte. Valorile din vectorul Vx trebuie să fie
ordonate crescător.
- x – reprezintă valoarea abscisei unui punct, a cărui ordonată
urmează a fi determinată prin interpolare liniară.
12. - Valoarea returnată: un număr real care reprezintă valoarea
calculată prin interpolare liniară.
INTERPOLAREA SPLINE
Interpolarea polinomială de tip spline se aplică pe diviziuni: a = x1 <
x2 <...< xi <...< xn = b în intervalului [a,b].
O funcție spline polinomială F(x) de gradul p cu nodurile în punctele
xi, i ∈1,n , are următoarele proprietăți:
a. Pe fiecare subinterval [xi ,xi+1 ], F(x) este un polinom de gradul p;
b. F(x) și primele sale (p-1) derivate sunt continue pe [a,b].
Deoarece funcția spline F(x) are primele (p-1) derivate continue pe
[a,b], derivata de ordinal p fiind discontinuă în nodurile xi ale
diviziunii, aceasta este o funcție netedă pe porțiuni. Gradul de
netezime este dat de ordinul p.
INTERPOLAREACUBICĂSPLINE BIDIMENSIONALĂÎN MATHCAD
În Mathcad există trei funcții predefinite pentru interpolarea cubică
spline:
- lspline(Vx,Vy) (l de la liniar);
- pspline(Vx,Vy) (p de la parabolic);
- cspline(Vx,Vy) (c de la cubic).
EXTRAPOLĂRI
Regresia și interpolarea determină valorile parametrilor unei funcții
care de exemplu aproximează datele experimentale și permit
estimarea valorilor funcției f(x), pentru valori oarecare ale lui x,
situate în interiorul intervalului în care sunt determinate punctele
nodale.
Sintaxafuncției predict(Vy,m,p):
- Vy reprezintă un vector cu elemente reale, cu n linii ce conține valorile
ordonatelor, pentru n puncte având abscisele situate la intervale egale;
- m, p – două numere întregi, m > 0, p > 0, m este numărul de puncte
terminale pe baza cărora se face extrapolarea, p este numărulde
13. puncte extrapolate.
- Funcțiapredict returnează un vector cu p elemente care conține
valorile ordonatelor celor p puncte.
Pentru aplicareacorectă a extrapolării trebuie respectate condițiile:
- 0<m<numărulde elemente ale vectorului Vy (length(v)), în practicăm
trebuie să fie multmai mic decât length(v). Rezultate aberante se obțin
și dacă numărulde elemente ale vectorului Vy este relativ mic. În
exemplul 6 deși au fost luate în considerare doar 4 puncte terminale se
obține o predicție eronată. Acest fenomen nu apare dacă sunt
procesate un număr mare de noduri (vezi exemplul 7).
- Se pot obține puncte de predicție la capătul inferior al intervalului
dacă se inversează ordinea vectorului Vy (funcția reverse (Vy)).
- Funcțiapredict duce la rezultate mulțumitoaredacă coordonatele
vecine nu au variații foarte mari, pot fi oscilatorii, nu neapărat
periodice
CURSUL9
REGRESIA LINIARĂ REZOLVATĂ CU FUNCŢIILE MATHCAD
Dacă dreapta de regresie se scrie y=A+Bx, iar cu Vx şi Vy se notează
doi vectori reali conţinând coordonatele punctelor, pentru regresia
liniară Mathcad pune la dispoziţie funcţiile:
Funcţia line:
Formatul funcţiei:line(Vx,Vy);
Argumentele funcţiei: Vx, Vy – reprezintă doi vectori cu elemente
absciselor şi respectiv a ordonatelor, pentru cele n puncte printre
care se trasează dreapta de regresie;
calculate ale parametrilor dreptei de regresie (A şi B).
Funcţia intercept:
Formatul funcţiei:intercept(Vx,Vy);
14. Argumentele funcţiei: Vx, Vy – reprezintă doi vectori cu elemente
absciselor şi respectiv a ordonatelor, pentru cele n puncte printre
care se trasează dreapta de regresie;
Valoarea returnată: valoarea parametrului A al dreptei de regresie (A
reprezintă ordonata punctului de intersecţie al dreptei de regresie cu
axa Oy).
Funcţia slope:
Formatul funcţiei: slope(Vx,Vy);
Argumentele funcţiei: Vx, Vy – reprezintă doi vectori cu elemente
in valorile
absciselor şi respectiv a ordonatelor, pentru cele n puncte printre
care se trasează dreapta de regresie;
Valoarea returnată: valoarea parametrului B, al dreptei de regresie
(B reprezintă panta (tan(α)) dreptei de regresie )
Funcția medfit
Sintaxa funcției: medfit(Vx,Vy): Vx, Vy doi vectori cu elemente reale
și cu aceleași dimensiuni conținând valorile absciselor și respectiv a
ordonatelor, pentru cele n puncte printre care se trasează dreapta
mediană;
Funcția medfit returnează un vector care conține valorile calculate
parametrilor dreptei mediane y=a+bx.
Funcția medfit împarte punctele în trei mulțimi cu aproximativ
același număr de elemente. Se iau în considerare primul și ultimul
grup de puncte și se calculează valorile mediane ale coordonatelor
pentru mulțimile extreme (x1Me,y1Me) (x2Me, y2Me), vezi funcția
median.Dreapta trece prin punctul cu coordonate media
coordonatelor medianelor celor trei grupuri (0,33(x1+x2+x3),
0,33(y1+y2+y3)).
15. Funcția polyfit:polyfit(X, Y, n/"termeni"/M) se utilizează pentru
determinarea suprafețelor de regresie polinomiale (/ are semnificația
de sau).
Funcția polyfitc :polyfitc(X,Y, n/"terms"/M, [conf]): primii cinci
parametri au aceleași semnificații ca și pentru funcția polyfit, ultimul
conf=0-1 este opțional și se referă la intervalul de încredere, dacă nu
este utilizat, Mathcad folosește valoarea implicită 95%.
Funcția polyfitstat:polyfitstat(X, Y, n/"terms"/M, [conf]): are
parametri identici cu ai funcției polyfitc, returnează date statistice
Funcțile rationalfit și rationalfitpn
Funcțiile raționale cu care operează rationalfit și rationalfitnp au
forma
Cele două funcții returnează câte o matrice cu trei coloane: prima
coloană conține coeficienții polinoamelor de la numărător și
numitor, a doua și a treia limitele la stânga, respectiv dreapta
corespunzătoare intervalului de încredere.
Funcția rationalfit:rationalfit(vx, vy, conf, m, n, [Stdy], [LBUB], [Acc],
["noscale"])
Funcția rationalfit:rationalfit(vx, vy, conf, m, n, [Stdy], [LBUB], [Acc],
["noscale"])