Loðimø teorija

 

Praktinë uþduotis

Nuotakos uþdavinys - kompiuterio pirkimas

 

Atliko:

Tomas Gudauskas

 

Jolita Ðvambarytë

 

 

Uþduotis

Pritaikant nuotakos uþdavinio sprendimo modelá, paraðyti programà kompiuterio pirkimui. Turint bendrus kompiuteriø duomenis, reikia surasti naudingumo funkcijos reikðmes perkant kompiuterá kiekvienu laikotarpiu.

 

Uþduoties analizë

Turime tokius duomenis:

    1. laikotarpiø kiekis,
    2. kompiuteriø gerumo vidurkis,
    3. kompiuteriø gerumo iðsibarstymas,
    4. kompiuteriø patikimumas,
    5. laukimo nuostoliai.

Atsakymas turëtø bûti kritiniø áspûdþiø reikðmes. T.y. jei tam tikru laikotarpiu, kompiuterio áspûdis virðija atitinkamo lentelëje laikotarpio kritiná dydá, kompiuteris yra perkamas, jei ne - laukiama sekanèio laikotarpio. Atsakymai gaunami sprendþiant dinaminio programavimo uþdaviná.

Kiekvienà laikotarpá pirkëjas gali pirkti kompiuterá arba nepirkti. Bûtina sàlyga, kad kompiuteris turi bûti nupirktas ir tik vienà kartà. Pirkëjas þino laikotarpiø, kuriais jis galës rinktis kompiuterá, skaièiø. Jo uþdavinys yra padaryti optimalø sprendimà ir maksimizuoti iðloðimà, nupirkus kompiuterá.

Sprendimas pradedamas nuo paskutinio laikotarpio. Skaièiuojamas pirkëjo iðloðimas perkant kiekvienu laikotarpiu.

Turime penkiø laikotarpiø kompiuteriø kainas. Nusistatome tam tikrà kainos lygá, pagal kurá ið kiekvieno laikotarpio atrenkame po vienà kompiuterá. Savo uþdavinyje parinkome kompiuterius, kuriø kaina artimiausia 3500 Lt.

Turime tokius kompiuteriø duomenis: MHz, Mb, Gb, kLt. Pagal juos konstruojame kompiuteriø gerumus w(i) pagal tokià formulæ:

w(i) = a1*MHz+a2*Mb+a3*Gb+a4*kLt.

Analogiðkai konstruojame pirkëjo áspûdþius s(i) pagal tokià formulæ:

s(i) = b1*MHz+b2*Gb.

Pasirinkome tokias koeficientø reikðmes: a1=1, a2=5, a3=50, a4=-10, b1=0.5, b2=40. Sunormuojame w(i) ir s(i) intervale [-1; 1]. Kompiuteriø gerumo vidurká apskaièiuojame pagal formulæ:

Jaunikiø - kompiuteriø iðsibarstymas skaièiuojamas pagal formulæ:

Pirkëjo áspûdþio nuokrypá nuo kompiuterio gerumo ávertinome expertiðkai ir jo reikðmæ parinkome

Laukimo nuostoliai: c=0.01

Teorinë dalis

Ðis uþdavinys yra sprendþiamas dinaminiu programavimu pagal toká algoritmà:

 

1) Pirmas þingsnis

 

2) Antras þingsnis

 

..........................................

N) Paskutinis þingsnis

 

Instrukcija vartotojui

Vartotojui yra pateikiama jau paruoðta vykdyti programa. Kiekvienai UNIX atmainai reikia programà sukompiliuoti ið naujo, todël galima bûtø pateikti ne vykdomàjà programà, bet programos textà. Tuo atveju programà reikia sukompiliuoti:

gcc nuotaka.c -o bride -lm

Programa pradedama vykdyti ávedus bride. Programa papraðo ávesti laikotarpiø kieká N, kompiuteriø gerumø vidurká , gerumø nuokrypá nuo vidurkio , pirkëjo áspûdþio nuokrypá nuo gerumo ir laukimo nuostolio dydá c.

Toliau programa skaièiuoja ir praneða koká naudoja gerumø intervalà, koká tikslumo þingsnelá ir kiek su ðiuo þingsneliu bus vykdoma iteracijø. Atlikus skaièiavimus, ekrane bus atspausdinta kritiniø gerumø lentelë kiekvienam laikotarpiui. Kadangi esant dideliam laikotarpiø kiekiui atvaizduota lentelë iðstums ávestas reikðmes ið ekrano, tai po lentele programa atspausdina kokie duomenys buvo ávesti.

Rezultatai

Hello, this is BRYDE's problem solution!!!

Co-workers: Tomas Gudauskas and Jolita Svambaryte

 

Enter the quantity of grooms N=5

Enter the average miu=0.26

Enter the scatter sigma0=0.368

Enter the brides slip sigma=0.1

Enter the waiting looses c=0.1

Gerumu intervalas [-0.844000, 1.364000], zingsnelis 0.100000, iteraciju kiekis 22

Skaiciuojame....

*********************************************************

* REZULTATU (gerumu) LENTELE *

*********************************************************

* Uz 1-o teka jei geresnis nei 0.056000 *

* Uz 2-o teka jei geresnis nei 0.056000 *

* Uz 3-o teka jei geresnis nei 0.056000 *

* Uz 4-o teka jei geresnis nei 0.056000 *

* Uz 5-o teka jei geresnis nei -0.844000 *

*********************************************************

Tai ivyko prie tokiu duomenu:

Ivedete N=5, miu=0.260000, sigma0=0.368000, sigma=0.100000, c=0.100000

 

Iðvados

Gavome rezultatus ne visai tokius, kokiø tikëjomës. Visuose þingsniuose, iðskyrus keletà paskutiniø, gauname vienodas kritines reikðmes. Mes nesame ásitikinæ savo uþdavinio sprendimo teisingumu, nes kritinës reikðmës turëtø skirtis. Galimos mûsø klaidos:

1) Realûs duomenys (kompiuteriø gerumai) buvo panaudoti tik skaièiuojant vidurká ir iðsibarstymà .

2) Aproximacijoje gerumø ir áspûdþiø reikðmës buvo paimtos vienodos (naudojant tuos paèius intervalo rëþius ir skaidant á tokias pat dalis).

Realiame gyvenime nuotakos modelis nelabai tinka kompiuterio pirkimui, nes nuotakos sàlyga yra ta, kad ji neþino bendro visø jaunikiø gerumo vidurkio, o mûsø sprendime pirkëjas turi þinoti bendrà kompiuteriø (tame tarpe ir ateities !!!) gerumo vidurká.

 

 

 

Priedas A

Duomenys

a1

a2

a3

a4

b1

b2

max

     

1

5

50

-10

0.5

40

494.71

           

min

     
           

244.84

     

97.06.04

MHz

Mb

Gb

kLt

 

W

S

Wnorm

Snorm

                   

1

120

8

3.2

3.326

 

286.74

188

   

2

133

8

2.1

3.316

 

244.84

150.5

   

3

133

8

2.5

3.397

 

264.03

166.5

   

4

133

8

3.2

3.558

 

297.42

194.5

   

5

150

16

1.2

3.506

 

254.94

123

-0.920

-1.000

6

150

16

1.6

3.553

 

274.47

139

   

7

150

16

2.1

3.648

 

298.52

159

   

8

150

16

2.5

3.728

 

317.72

175

   

9

166

16

1.2

3.828

 

267.72

131

   

10

166

16

1.6

3.875

 

287.25

147

   
                   

97.07.24

MHz

Mb

Gb

kLt

         
                   

1

120

8

3.2

3.113

 

288.87

188

   

2

133

8

2.5

3.217

 

265.83

166.5

   

3

133

8

3.2

3.326

 

299.74

194.5

   

4

150

16

1.2

3.113

 

258.87

123

   

5

150

16

2.5

3.364

 

321.36

175

   

6

150

16

3.2

3.473

 

355.27

203

-0.116

-0.116

7

166

16

1.6

3.25

 

293.5

147

   

8

166

16

2.1

3.369

 

317.31

167

   

9

166

16

2.5

3.444

 

336.56

183

   

10

166

16

3.2

3.553

 

370.47

211

   
                   

97.08.28

MHz

Mb

Gb

kLt

         
                   

1

133

8

3.2

3.197

 

301.03

194.5

   

2

150

16

2.1

3.31

 

301.9

159

   

3

150

16

2.5

3.446

 

320.54

175

   

4

150

8

3.2

3.493

 

315.07

203

   

5

166

16

1.2

3.242

 

273.58

131

   

6

166

16

1.6

3.283

 

293.17

147

   

7

166

16

2.1

3.366

 

317.34

167

   

8

166

16

2.5

3.502

 

335.98

183

-0.27

-0.338

9

166

16

3.2

3.549

 

370.51

211

   

10

200

16

2.1

3.721

 

347.79

184

   
                   

97.9.30

MHz

Mb

Gb

kLt

         
                   

1

150

16

2.5

3.099

 

324.01

175

   

2

150

16

3.2

3.144

 

358.56

203

   

3

166

16

1.2

3.021

 

275.79

131

   

4

166

16

1.6

3.067

 

295.33

147

   

5

166

16

2.1

3.173

 

319.27

167

   

6

166

16

2.5

3.273

 

338.27

183

   

7

166

16

3.2

3.318

 

372.82

211

   

8

200

16

2.1

3.518

 

349.82

184

-0.16

-0.326

9

200

16

2.5

3.619

 

368.81

200

   

10

200

16

3.2

3.663

 

403.37

228

   
                   

97.10.30

MHz

Mb

Gb

kLt

         
                   

1

166

16

1.2

2.841

 

277.59

131

   

2

166

16

1.6

2.884

 

297.16

147

   

3

166

16

2

2.976

 

316.24

163

   

4

166

16

2.5

3.06

 

340.4

183

   

5

166

16

3.1

3.076

 

370.24

207

   

6

200

16

2

3.327

 

346.73

180

   

7

200

16

2.5

3.411

 

370.89

200

   

8

200

16

3.1

3.428

 

400.72

224

0.248

0.116

9

200

16

4.2

3.706

 

452.94

268

   

10

200

16

5.1

4.029

 

494.71

304