Pereiti prie turinio

[HELP] Algoritmai ir duom. struktūros - perrinkimo uždavinys.


Rekomenduojami pranešimai

Labas visiems,

 

Gavau ADS užduotį, kurios nesuprantu iki galo.:

 

Turime N darbų, kurių atlikimo trukmė t1, t2,..tN, kurių baigimo terminai d1, d2,..dN. Jei darbai

neatliekami laiku, bauda atitinkamai b1, b2,..bN. Kokia eilės tvarka atlikti darbus, kad bauda būtų

minimali.

 

Labai prašau jūsų visų pagalbos su šiuo perrinkimo uždaviniu. Stengiausi sugalvoti algoritmą pats, tačiau šnipštas gavosi.. Bandžiau braižytis galimus uždavinio variantus lapelyje, konsultavausi pas kai kuriuos grupiokus/kursiokus, tačiau vis tiek esu visiškai pasimetęs. Gal pradėsiu nuo konkrečių minčių: manau, kad šio uždavinio algoritme yra svarbi rekursija, kuri padėtų perrinkti visus variantus, tačiau man juos reikia optimizuoti, ir sumažinti į kuo mažesnį kiekį (remiantis logika). Gal turite minčių nuo ko pradėti? Beje, gal galėtumėte man išsamiai paaiškinti šią sąlygą? (Taip, tai gali skambėti juokingai, tačiau galbūt aš ją visiškai ne taip supratau?) Taip pat gal galėtumėte pakomentuoti, kaip programiškai galėčiau sprendimą aprašyti? (Kalba nėra svarbi, bet orientuočiausi į Java/C++/C)

 

Nuoširdus ačiū!

 

P.S nevenkite numesti ir šaltinių, iš kurių galėčiau pasiskaityti pats ir taip jūsų aiškinimas sutrumpėtų. :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Pirma paskaičiuoji baudą, jei darbus atlieki tvarka 1, 2, 3, 4. Tada tą patį paskaičiuoji eilės tvarkai 1, 2, 4, 3. Kartoji, kol išbandysi visus galimus 4! variantų (bendru atveju N!). Išsirenki mažiausią baudą.

 

Eilės tvarkas turbūt patogiausia generuoti su rekursija. Jeigu programuoji C++, gali panaudoti funkciją next_permutation, kad nereikėtų rekursijos (turėtų būti kažkas panašaus ir kitose kalbose).

Redagavo wi_lius
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nes aš salygą supratau taip jog darbai ir jų laikai yra susiję, bet tos pačios baudos gali būti rikiuojamos, taip jog būtu minimaliai. Plius jei sprendi tokius uždavinius tikrai visada stenkis

nenaudot N! algoritmo sudėtingumo

Redagavo TheSausis
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...