eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programming[programowanie matematyczne][programowanie matematyczne]
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!plix.pl!newsfeed1.plix.pl!newsfeed00.su
    l.t-online.de!t-online.de!border2.nntp.dca.giganews.com!nntp.giganews.com!nx02.
    iad01.newshosting.com!newshosting.com!newsfeed.neostrada.pl!unt-exc-01.news.neo
    strada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
    From: "Karol_tom" <K...@w...pl>
    Newsgroups: pl.comp.programming
    Subject: [programowanie matematyczne]
    Date: Fri, 7 May 2010 19:35:31 +0200
    MIME-Version: 1.0
    Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=original
    Content-Transfer-Encoding: 8bit
    X-Priority: 3
    X-MSMail-Priority: Normal
    X-Newsreader: Microsoft Windows Mail 6.0.6002.18005
    X-MimeOLE: Produced By Microsoft MimeOLE V6.0.6002.18005
    X-Antivirus: avast! (VPS 100507-0, 2010-05-07), Outbound message
    X-Antivirus-Status: Clean
    Lines: 95
    Message-ID: <4be44f61$0$19183$65785112@news.neostrada.pl>
    Organization: Telekomunikacja Polska
    NNTP-Posting-Host: 83.24.19.152
    X-Trace: 1273253729 unt-rea-a-01.news.neostrada.pl 19183 83.24.19.152:55094
    X-Complaints-To: a...@n...neostrada.pl
    Xref: news-archive.icm.edu.pl pl.comp.programming:185538
    [ ukryj nagłówki ]

    Witam, choć to może mało związane z takim prawdziwym programowaniem (Xpress
    Mosel),
    to na pewno siedzą tu ścisłe mózgi i może podpowiedzą mi, gdzie ten cholerny
    błąd siedzi, bo
    już z dwie godziny próbuję coś zmieniać w kodzie i nic nie wychodzi (ciągle
    dostaje komunikat, że typy zmiennych są niekompatybilne):


    model ModelName
    uses "mmxprs";
    parameters
    !liczba oczyszczalni N
    N=3
    M=3
    ! liczba wariantów
    v=6
    end-parameters

    declarations
    oczyszczalnie=1..N
    przekroje=1..M
    warianty=1..v
    ! czy w danej oczyszczalni używamy danego wariantu?
    y:array(oczyszczalnie, warianty) of mpvar
    BZT:array(przekroje) of linctr
    x:array(oczyszczalnie) of real
    xwar:array(warianty) of real
    q:array(oczyszczalnie) of real
    Q:array(przekroje) of real
    p:array(przekroje) of real
    B:array(przekroje) of real
    u:array(oczyszczalnie) of real
    k:array(przekroje,przekroje) of real
    kb:array(przekroje,przekroje) of real
    c:array(oczyszczalnie) of real
    cwar:array(warianty) of real
    sumy:array(oczyszczalnie) of integer
    t:array(przekroje,przekroje) of real
    end-declarations
    !
    !
    Q::[15, 18, 25]
    q::[0.8, 0.7, 0.5]
    p::[220, 250, 265]
    B::[4, 4, 3]
    xwar::[0.6, 0.7, 0.75, 0.8, 0.9, 0.95]
    cwar::[10, 12, 13, 16, 22, 30]
    !u to xmax
    u::[0.85, 0.9, 0.9]
    t::[0, 1, 3,
    0, 0, 2,
    0, 0, 0]
    kb::[0, 0.25, 0.25,
    0, 0, 0.27,
    0, 0, 0]
    forall (j in oczyszczalnie, z in warianty)
    y(j,z)=0 or y(j,z)=1
    !tylko w jednym miejscu dla danej oczyszczalnie jedynka, dlatego:
    forall (j in oczyszczalnie) do
    b(j):=(sum(z in warianty) y(j,z))
    b(j)=1
    end-do
    j:=1
    while j<=v do
    x(j):=(sum(z in warianty) y(j,z)*xwar(z))
    !wartości C
    c(j):=(sum(z in warianty) y(j,z)*cwar(z))
    end-do
    forall (i in przekroje, j in przekroje)
    k(i,j):=exp(-kb(i,j)*t(i,j))

    !ograniczenia
    forall (i in przekroje) do
    BZT(i):=(sum(j in 1..i) (1-x(j))*p(j)*q(j)*k(j,i))/(Q(i)+sum(j in 1..i)
    q(j))
    BZT(i)<=B(i)
    BZT(i)>=0
    end-do
    !ograniczenia dot. zakresu stopnia redukcji zanieczyszczen
    forall (j in oczyszczalnie) do
    x(j)>=0
    x(j)<=u(j)
    end-do
    !Funkcja celu:
    z:=sum(j in oczyszczalnie) c(j)*x(j)
    minimize(z)

    writeln("Niezbędne środki wynoszą: ", getobjval)
    forall (i in przekroje) do
    writeln(" Stopień redukcji w oczyszczalni nr (",i,") wynosi
    ",getsol(x(i)))
    writeln(" BZT (",i,") wynosi ",getsol(BZT(i)))
    end-do
    end-model

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: