{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pulp"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def solveAndPrint(problem):\n",
" pass\n",
" #TODO dla chętnych: napisać funkcję, która przyjmuje jako argument problem i wyświetla go,\n",
" #rozwiązuje oraz wypisuje optymalne wartości zmiennych decyzyjnych i funkcji celu, podobnie\n",
" #jak w komórkach 6-10 z przykładu ze strony"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1\\. Przedsiębiorca chce zainwestować najwyżej 10 000 zł w dwa fundusze: fundusz\n",
"akcji i fundusz obligacji. Średni roczny zysk funduszu akcji wynosi 12%, zaś zysk funduszu\n",
"obligacji 9%. Przedsiębiorca postanowił, że w fundusz obligacji zainwestuje co najmniej 2 000\n",
"zł i nie więcej niż 6 000 zł w fundusz akcji. Ponadto przedsiębiorca nie chce zainwestować w\n",
"fundusz akcji więcej niż w fundusz obligacji. Ile pieniędzy powinien on zainwestować w fundusz\n",
"akcji, a ile w obligacji, aby osiągnąć maksymalny zysk w ciągu roku? Jakiego zysku może\n",
"wówczas oczekiwać?"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"problem = pulp.LpProblem('Problem przedsiębiorcy', pulp.LpMaximize)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Zdefiniuj zmienne decyzyjne:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Dodaj funkcję celu:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Dodaj ograniczenia:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Zobacz zawartość zmiennej **problem**:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Rozwiąż problem i sprawdź jego status:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Wypisz optymalne wartości zmiennych decyzyjnych i funkcji celu:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2\\. Badacz musi zrealizować projekt obejmujący badania EEG i eyetrackerem na tych samych osobach. Badanie ma obejmować 2 typy bodźców na EEG i 4 typy bodźców na eyetrackerze. Średnie czasy trwania bodźców wynoszą odpowiednio 6 i 12 sekund. Przygotowanie badania dla jednej osoby na EEG trwa 20 minut, a na eyetracker 7 minut. Badacz wie, że chce eksponować nie mniej niż 120 bodźców w trakcie obu badań jednej osoby. Wie ponadto, że całe badanie nie powinno trwać dłużej niż godzinę. Z założeń projektu wynika też, że powinnien zebrać minimum po 30 bodźców jednego typu w badaniach EEG i po 25 bodźców jednego typu w trakcie badania eyetrackingowym. Badacz chce zebrać jak najwięcej wartościowych wyników pamiętając, że 30 % reakcji z EEG i 20 % z reakcji z eyetrackingu to z reguły artefakty. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"3\\. Planujemy badanie podłużne. Co miesiąc należy monitorować postępy dzieci biorących udział w badaniu w nauce czytania w zależności od metody czytania tekstu zaproponowanej nauczycielowi. Wymagają one aby co miesiąc badanie obejmowało: 20 godzin nagrań głośnego czytania, 30 godzin rejestrowania pracy z tekstem na lekcjach oraz 30 godzin nagrań czytania na głos przez nauczycieli.\n",
"Każdorazowe zajęcia z czytania w szkołach objętych badaniem obejmują po:\n",
"10 minut głośnego czytania, 20 minut pracy z tekstem i 15 minut czytania przez nauczycieli w szkole nr. 1;\n",
"10 minut głośnego czytania, 10 minut pracy z tekstem i 25 minut czytania przez nauczycieli w szkole nr. 2;\n",
"15 minut głośnego czytania, 15 minut pracy z tekstem i 15 minut czytania przez nauczycieli w szkole nr. 3.\n",
"Każdorazowa wizyta w szkole kosztuje badaczy (dojazdy oraz wynagrodzenie dla szkoły) 50 zł w szkole nr. 1, 30 zł w szkole nr. 2 oraz 40 zł w szkole n. 3.\n",
"Ile razy powinni badacze odwiedzić każdą ze szkół, aby uzyskać odpowiednią ilość nagrań najmniejszym kosztem?"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"4\\. Problem plecakowy – mamy 7 elementów, z których każdy ma pewną wagę\n",
"(wypisaną w tabelce) oraz zysk. Jakie elementy (mamy do dyspozycji po jednej sztuce\n",
"każdego) należy włożyć do plecaka, aby maksymalizować zysk, przy czym do plecaka może się\n",
"zmieścić ilość przedmiotów o całkowitej wadze nie przekraczającej 20.\n",
"\n",
"
\n",
" \n",
" Element nr | \n",
" Waga | \n",
" Zysk | \n",
"
\n",
" \n",
" 1 | \n",
" 4 | \n",
" 4 | \n",
"
\n",
" \n",
" 2 | \n",
" 7 | \n",
" 10 | \n",
"
\n",
" \n",
" 3 | \n",
" 3 | \n",
" 3 | \n",
"
\n",
" \n",
" 4 | \n",
" 10 | \n",
" 13 | \n",
"
\n",
" \n",
" 5 | \n",
" 5 | \n",
" 6 | \n",
"
\n",
" \n",
" 6 | \n",
" 5 | \n",
" 7 | \n",
"
\n",
" \n",
" 7 | \n",
" 15 | \n",
" 20 | \n",
"
\n",
"
"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"5\\. Mamy grupę ludzi, którzy mają zostać wybrani do pracy w firmie informatycznej.\n",
"Każdy z nich oczekuje też pewnej konkretnej pensji.\n",
"\n",
"\n",
" \n",
" Imię | \n",
" Pensja | \n",
"
\n",
" \n",
" Jan Kowalski | \n",
" 5000 | \n",
"
\n",
" \n",
" Anna Nowak | \n",
" 4500 | \n",
"
\n",
" \n",
" Tomasz Niewiadomski | \n",
" 6000 | \n",
"
\n",
" \n",
" Ewa Kaczmarek | \n",
" 3500 | \n",
"
\n",
"
\n",
"\n",
"Posiadają oni następujące umiejętności:\n",
"\n",
"\n",
" \n",
" Nazwa | \n",
" J.K. | \n",
" A.N. | \n",
" T.N. | \n",
" E.K. | \n",
"
\n",
" \n",
" J. Angielski | \n",
" + | \n",
" - | \n",
" - | \n",
" + | \n",
"
\n",
" \n",
" J. Niemiecki | \n",
" + | \n",
" - | \n",
" + | \n",
" - | \n",
"
\n",
" \n",
" Prawo jazdy | \n",
" - | \n",
" + | \n",
" + | \n",
" + | \n",
"
\n",
" \n",
" Dyspozycyjność w weekend | \n",
" - | \n",
" + | \n",
" + | \n",
" + | \n",
"
\n",
" \n",
" Zdolności kierownicze | \n",
" + | \n",
" + | \n",
" - | \n",
" - | \n",
"
\n",
" \n",
" Programowanie | \n",
" + | \n",
" + | \n",
" + | \n",
" - | \n",
"
\n",
" \n",
" Znajomość marketingu | \n",
" - | \n",
" - | \n",
" + | \n",
" + | \n",
"
\n",
" \n",
" Obsługa sieci komputerowej | \n",
" + | \n",
" + | \n",
" - | \n",
" - | \n",
"
\n",
" \n",
" Techniki optymalizacji | \n",
" - | \n",
" - | \n",
" + | \n",
" + | \n",
"
\n",
"
\n",
"\n",
"Jakie osoby należy wybrać tak, aby była przynajmniej jedna osoba, która posiada każdą z\n",
"umiejętności?"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"6\\. Mamy trzy magazyny w różnych miastach (Detroit, Pittsburgh i Buffalo), w których\n",
"znajduje się odpowiednio 250, 130 i 235 ton papieru. Są cztery wydawnictwa ( Boston, New\n",
"York, Chicago i Indianapolis), które potrzebują odpowiednio 75, 230, 240 i 70 ton papieru aby\n",
"produkować nowe książki. Mamy następujące koszty transportu z miasta do miasta (za tonę\n",
"papieru):\n",
"\n",
"\n",
" \n",
" From \\ To | \n",
" Boston (BS) | \n",
" New York (NY) | \n",
" Chicago (CH) | \n",
" Indianapolis (IN) | \n",
"
\n",
" \n",
" Detroit (DT) | \n",
" 15 | \n",
" 20 | \n",
" 16 | \n",
" 21 | \n",
"
\n",
" \n",
" Pittsburgh (PT) | \n",
" 25 | \n",
" 13 | \n",
" 5 | \n",
" 11 | \n",
"
\n",
" \n",
" Buffalo (BF) | \n",
" 15 | \n",
" 15 | \n",
" 7 | \n",
" 17 | \n",
"
\n",
"
\n",
"\n",
"Zaplanuj transport papieru tak, aby koszt był jak najmniejszy."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.2"
}
},
"nbformat": 4,
"nbformat_minor": 1
}