opis

Transkrypt

opis
Systemy Wspomagania Decyzji
Projekt: System Wspomagania Komponowania Diety
autor: J.M. Tomczak
1.
Cel
Celem projektu jest opracowanie aplikacji, która pozwoli na automatyczne komponowanie diety. W
projekcie należy wykorzystać dane dot. różnych produktów żywieniowych. Każdy produkt żywieniowy opisany jest różnymi atrybutami, m.in. licbza kalorii, białka, tłuszcze, węglowodany, wapń,
żelazo, witamina A, witamina C. System wspomagania komponowania diety powinien umożliwiać
filtrowanie produktów, wprowadzenie ograniczeń na właściwości spożywcze. System ma na celu
minimalizowanie liczby kalorii przy wybranych produktach oraz zdefiniowanych ograniczeń.
2.
Dane
Dane dotyczą różnych produktów żywieniowych. Dane dostępne są na stronie prowadzącego1 . Dane
zostały zaczerpnięte z The Socrata Open Data Portal2 .
Każdy produkt żywieniowy opisany jest następującymi atrybutami: typ jedzenia (Type), nazwa
(Food Name), kalorie (Calories), białko (Protein), tłuszcze (Fat), węglowodany (Carbohydrates),
wapń (Calcium), żelazo (Iron), sód (Sodium), witamina A (Vitamin A), tiamina (Thiamin), witamina C (Vitamin C ).
3.
Zadania do wykonania
Podczas projektu należy wykonać następujące zadania:
1. Sformułowanie problemu (0.5 pkt.)
Przed przystąpieniem do implementacji należy sformułować problem optymalizacji jako np.
zadanie programowania liniowego. Proszę przyjąć, że zmienne decyzjne (oznaczające wybór
produktu żywieniowego) mogą przyjmować wartości między 0 a 1. Oznacza to, że dopuszczamy dzielenie produktów.
1
2
https://www.ii.pwr.edu.pl/~tomczak
https://opendata.socrata.com/Education/Foods-anyone-view/x5ii-ckby
1
2. Wczytywanie danych (0.5 pkt.)
W aplikacji należy umożliwić wczytywanie danych z zewnętrznego pliku w wybranym formacie. W tym celu należy zdecydować się na odpowiedni format.
3. Filtrowanie produktów (0.5 pkt.)
Przed przystąpieniem do komponowania diety, aplikacja powinna umożliwiać filtrowanie produktów żywieniowych ze względu na typ jedzenia. Dodatkowo, proszę umożliwić usunięcie
wybranych produktów.
4. Wprowadzenie ograniczeń (1.0 pkt.)
W aplikacji należy umożliwić przyjazne wprowadzanie ograniczeń na atrybuty. Należy przyjąć
domyślne ograniczenia, tj. wartości atrybutów nie mogą być ujemne, zmienne decyzyjne nie
mogą przyjmować wartości mniejszych od 0 i większych od 1.
5. Komponowanie diety (2.0 pkt.)
Dla wybranych produktów przez użytkownika oraz wprowadzonych ograniczeń należy rozwiązać problem optymalizacji, który ma na celu minimalizację kalorii dla wybranych produktów.
6. Dodatki (1.0 pkt.)
Aplikację można wzbogacić o dodatkowe elementy, np. estetyka aplikacji, ręczne dodawanie
produktów do bazy danych.
Język programowania oraz wykorzystane technologie i biblioteki – DOWOLNE.
2