Programowanie obiektowe III rok EiT - PowerPoint PPT Presentation

About This Presentation
Title:

Programowanie obiektowe III rok EiT

Description:

Programowanie obiektowe III rok EiT dr in . Jerzy Kotowski Wyk ad XII Program wyk adu J zyk C++ Przyk ad problemu Model matematyczny zadania symulacji ... – PowerPoint PPT presentation

Number of Views:151
Avg rating:3.0/5.0
Slides: 21
Provided by: JerzyKo
Category:

less

Transcript and Presenter's Notes

Title: Programowanie obiektowe III rok EiT


1
Programowanie obiektoweIII rok EiT
  • dr inz. Jerzy Kotowski
  • Wyklad XII

2
Program wykladu
  • Jezyk C
  • Przyklad problemu
  • Model matematyczny zadania symulacji
  • Transformacja zadania do problemu statycznej
    optymalizacji wypuklej bez ograniczen
  • Opis algorytmu rozwiazania zadania optymalizacji
    metoda Newtona
  • Opis programu obliczeniowego
  • Podstawy jezyka JAVA
  • Klasówka

3
Literatura
  • Klempous R., Kotowski J. (1988). Some models for
    Water Distribution Systems. Journal of
    Computational and Applied Mathematics, 26,
    257-269.
  • Klempous R., Kotowski J. (1991). Nonlinear
    transport network design. Journal of
    Computational and Applied Mathematics, 35,
    269-275.
  • Klempous R., Kotowski J., Nikodem J. (1994).
    System Approach to the Water Distribution
    Problems In Proceedings of the Twelfth European
    Meeting on Cybernetics and Systems Research
    (Vienna, Austria), 957-963.
  • Symfonia C, Jerzy Grebosz, Oficyna Kallimach,
    Kraków 1999

4
Przyklad problemu
Symulacja sieci wodociagowej
5
Model matematyczny sieci wodociagowej
  • Model matematyczny luku sieci prawo
    Bernoulliego

6
Model matematyczny sieci wodociagowej
  • Prawa Kirchhoffa
  • I prawo zachowania masy
  • II prawo równania oczkowe
  • Oznaczenia
  • y?Rm wektor przeplywów w lukach
  • x?Rm wektor spadków cisnien w lukach
  • ??Rw wektor zapotrzebowan w wezlach
  • A macierz incydencji, A A(w-1)xm, aij
    0,1,-1
  • B macierz oczkowa, B B(m-w1)xm, bij 0,1,-1

7
Model matematyczny sieci wodociagowej - wlasnosci
  • Uklad m algebraicznych równan nieliniowych z m
    niewiadomymi
  • Jak to rozwiazac?

8
Przyklad 1
  • w 4 / 0 pompownia
  • m 4
  • m-w1 1 / jedno oczko
  • I prawo Kirchhoffa
  • y1 y2 y3 ?1
  • y2 - y4 ?2
  • y3 y4 ?3
  • III prawo Kirchhoffa
  • x2 y3 x4 0
  • Cztery równania z czterema niewiadomymi y1, y2,
    y3, y4

9
Problem optymalizacji
  • Idea (podstawy fizyki)Minimalizowac straty przy
    spelnieniu warunku zachowania masy
  • Sformulowanie problemu dla przypadku sieci
    transportowych

()
10
Przyklad 2 z zycia (druty)
M M1 M2 ? min I1 I2 I0
I1I2 I0 I prawo K. U1-U20 II prawo
K. Ui RiIi, i1,2 Mi UiIi, i1,2
11
Warunki Kuhna-Tuckera
  • II prawo Kirchhoffa nie pojawilo sie przypadkiem.
  • Prawo to mozna wyprowadzic jako pewna
    transformacje warunków optymalnosci Kuhna-Tuckera
    dla zadania ()
  • Lagrangian L(y,?)f(y) ?Tg(y)
  • gdzie y?Rn
  • a g(y)?Rm to ograniczenia w postaci g(y)0
  • Warunki Kuhna-Tuckerajezeli y jest optymalnym
    rozwiazaniem zadania () to wtedy

12
Warunki Kuhna-Tuckera dla zadania ()
/B
I prawo Kirchhoffa
Teoria grafów BAT0
II prawo Kirchhoffa
13
Wniosek
  • W celu symulacji cyfrowej rozplywów w nieliniowej
    sieci transportowej (gaz, woda, etc.) mozna
    zamiast rozwiazywania ukladu równan nieliniowych
    typu I i II prawo Kirchhoffa rozwiazac problem
    optymalizacji statycznej z wypukla funkcja celu
    oraz z liniowymi ograniczeniami równosciowymi (I
    prawo Kirchhoffa).
  • Problem optymalizacji mozna zredukowac.
  • Idea redukcji polega na rozwiklaniu ograniczen
    liniowych i dokonaniu odpowiednich podstawien w
    funkcji celu.
  • Liczba zmiennych w problemie zredukowanym jest
    równa liczbie oczek w sieci (metoda pradów
    oczkowych)
  • Problem zredukowany jest wypuklym zadaniem
    optymalizacji statycznej i moze byc rozwiazywany
    z wykorzystaniem wielu metod optymalizacji
    statycznej.

14
Zmodyfikowana metoda Newtona
  • Wlasnosci metody
  • Sluzy do rozwiazywania zadan programowania
    matematycznego bez ograniczen
  • Wymaga znajomosci gradientu i hesjanu
    optymalizowanej funkcji celu
  • Schemat metody
  • Rozwinac funkcji celu w otoczeniu biezacego
    optimum y w szereg Taylora
  • Obciac rozwiniecie nalezy na trzecim skladniku
    (forma kwadratowa)
  • Wyznaczyc minimum otrzymanej formy kwadratowej y
  • Przyjac dy-y jako nowy kierunek poszukiwac dla
    metody poszukiwania w kierunku
  • Przyjac nowe rozwiazanie y jako poszukiwane
    minimum w kierunku
  • Jezeli nie osiagnieto zadanej dokladnosci
    obliczen to powrócic do 1.
  • Idea metody
  • Dla problemów programowania wypuklego proces
    wyznaczania optimum przedstawiony w kroku trzecim
    sprowadza sie do rozwiazania ukladu równan
    liniowych z symetryczna i dodatniookreslona
    macierza.

15
Zmodyfikowana metoda Newtona - opis
Szereg Taylora
Forma kwadratowa
Minimum formy kwadratowej
16
Klasa Newton
class Newton // optimization
method protected int n //
problem dimension double eps //
accuracy double x // solution
double d // step double grad
// gradient double hes //
Hessian public Newton(int nn,double e,double
spNULL) // dim, acc, st. point Newton()
// destructor virtual void
gradient_and_hesjan(void)0 // gradient
Hessian void Euler_method() // linear
problem void step() // particular
step void method() // optimization
procedure void show_solution() // result
of calculation
17
Metoda Newtona - funkcje skladowe
  • Newton(int nn, double e, double spNULL)
  • konstruktor liczba zmiennych, test stopu, punkt
    startowy
  • spNULL start z poczatku ukladu wspólrzednych
  • Newton()
  • destruktor
  • virtual void gradient_and_hesjan(void)0
  • czysta funkcja wirtualna, wyznacza gradient i
    hesjan w klasie pochodnej
  • void Euler_method()
  • rozwiazuje uklad równan z symetryczna i dodatnio
    okreslona macierza
  • void step()
  • jeden krok metody optymalizacji
  • void method()
  • procedura optymalizacji z testem stopu na dlugosc
    gradientu
  • void show_solution()
  • Wyniki obliczen

18
Przyklad 3 z zycia (woda) .. \test0.sln
M M1 M2 ? min y1 y2 y0
x1 x2
y1 y2 y0
Program woda1.cpp
19
Program Symulacja klasa network
class network protected int n_arcs
// number of arcs int n_nodes //
number of nodes int n_pumping_st //
number of pumping stations int n_consumers
// number of water consumers int n_reduced
// dimension of the reduced problem n_pipe
pipes // pipes node nodes //
nodes pumping_station p_stations //
pumping stations public network(int
na10,int nn11,int np1) // constructor
network() // destructor void
ini_streams0(char str0) // setting reduced
problem void parameters(pump_parameters ip,
int nm,int (str)2,double res,double
needs,double altitudes,char str0,char top0)
void output_p(double o_p)// output from
pumping stations void flows_in_network()
// the full flow in network void
preassures_in_pumping_stations() // minimal
pressures network operator!(void) //
report on the screen void network_state(state
st) // show state of the network
20
Klasa Simulation ../../Visual20Studio20Project
s/woda2
class Simulation public network, public
Newton char desc_gradient //
description of gradient char desc_hesjan
// description of hesjan public
Simulation(int na,int nn,int np,double e,double
sp) Simulation() void
ini_gradient_and_hesjan(char g,int dg,char
h,int dh) void gradient_and_hesjan()
  • Dziedziczenie wielobazowe publiczne
  • void gradient_and_hesjan() - czysta funkcja
    wirtualna w klasie bazowej
  • Idea przykladu problem metoda program
    obliczeniowy
Write a Comment
User Comments (0)
About PowerShow.com