• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Podział na dwie równe części - programowanie liniowe?

Object Storage Arubacloud
0 głosów
285 wizyt
pytanie zadane 25 kwietnia 2018 w Matematyka, fizyka, logika przez littlerunaway Obywatel (1,790 p.)
Zmarł bogaty arystokrata a jego spadek trzeba rozdzielić pomiędzy dwóch synów. W skład spadku wchodzą:

 A Caillebotte picture: 25000$
 A bust of Diocletian: 5000$
 A Yuan dinasty chinese vase: 20000$
 A 911 Porsche: 40000$
 Three blood diamonds: 12000$ each
 A Louis XV sofa: 3000$
 Two very fluffy rare breed cats: 3000$ each (the will asserts that they may not be separated)
 A sculpture dated 200 A.D.: 10000$
 A sailing boat: 15000$
 A Harley Davidson motorbike: 10000$
 A piece of furniture that once belonged to Newton: 13000$.

Wszystkie te przedmioty muszą być podzielone na dwie części. Jaki podział minimalizuje różnicę między wartościami dwóch części?

Jak sformułować taki program przy użyciu programowania liniowego? Mam z tym duży problem bo wszystkie problemy z którymi miałam styczność wcześniej opierały się jedynie na minimalizacji kosztów/maksymalizacji przychodów.
1
komentarz 25 kwietnia 2018 przez NowyUrzydgownig Mądrala (5,090 p.)
Prostee. Dzielisz wszystko na dwa i masz ile po równo każdy ma dostać.
komentarz 25 kwietnia 2018 przez littlerunaway Obywatel (1,790 p.)
Nie no, dzięki

2 odpowiedzi

+1 głos
odpowiedź 25 kwietnia 2018 przez Beginer Pasjonat (22,110 p.)
wybrane 5 maja 2018 przez littlerunaway
 
Najlepsza
W tym zadaniu funkcja celu może mieć postać:

A * x1 + B * x2 + C * x3 + D * x4 + .... + K * x11  =  A * y1 + B * y2 + C * y3 + D * y4 + ..... + K * y11

gdzie: A, B, C, D .... K są stałymi, oznaczającymi kolejne pozycje (wartości) spadku. (Np. A = 25000, B = 5000, C = 20000)

Lewa i prawa strona równania oznaczają odpowiednio: składniki spadku pierwszego i drugiego syna.

warunki można określić następująco:

x1 = 0 lub 1;      y1 = 0 lub 1;     x1 != y1;

x2 = 0 lub 1;      y2 = 0 lub 1;     x2 != y2;

x3 = 0 lub 1;      y3 = 0 lub 1;     x3 != y3;

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

x11 = 0 lub 1;      y11 = 0 lub 1;     x11 != y11;

Jeśli któryś współczynnik: x lub y przyjmuje wartość 0, oznacza to, że danego składnika (czynnika) w "worku" syna nie ma.

Mają funkcję celu oraz tak sformuowane warunki można już stosunkowo łatwo, numerycznie znaleźć wartości wszystkich współczynników x i y, dla których nastąpi równy podział majątku (lub najbardziej zbliżony do równego).
0 głosów
odpowiedź 25 kwietnia 2018 przez Beginer Pasjonat (22,110 p.)
1. Wprowadź cały spadek - wszystkie rzeczy (wartości) do kontenera.

2. Zrób sortowanie od najmniejszej wartości - do największej.

3. Utwórz dwie zmienne A i B reprezentujące dwóch synów, gdzie będą sumowane spadki w ich "workach".

4. Z kontenera pobieraj kolejno parami wartości, poczynając od największych, i rozdzielaj między dwa zbiory A i B. Każdorazowo sprawdzaj jaka jest sumaryczna wartość każdego z nich. Jeśli, któraś będzie wyższa, to z pary pobranych wartości przydziel mniejszą. Tak postępuj do końca (do wyczerpania wszystkich rzeczy).
komentarz 25 kwietnia 2018 przez littlerunaway Obywatel (1,790 p.)
Ale nie jest to chyba zdefiniowanie problemu przy użyciu programowania liniowego? To co podałeś jest algorytmem zachłannym.

Podobne pytania

0 głosów
1 odpowiedź 702 wizyt
pytanie zadane 30 stycznia 2018 w C i C++ przez Krystek102 Bywalec (2,440 p.)
0 głosów
2 odpowiedzi 2,049 wizyt
pytanie zadane 4 listopada 2015 w HTML i CSS przez grze848 Początkujący (480 p.)
0 głosów
1 odpowiedź 184 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...