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