{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Päivitetty 2025-08-26 / Aki Taanila\n" ] } ], "source": [ "from datetime import datetime\n", "print(f'Päivitetty {datetime.now().date()} / Aki Taanila')" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Asiakaspalvelupisteen simulointi\n", "\n", "Asiakaspalvelupisteen jonon muodostukseen vaikuttaa kaksi tekijää:\n", "\n", "- Asiakkaiden saapuminen palvelupisteeseen.\n", "- Palvelun kesto.\n", "\n", "Asiakkaiden saapumista voidaan monissa tapauksissa mallintaa onnistuneesti eksponentiaalisella jakaumalla. Tällöin tarvitaan tieto siitä, kuinka paljon asiakkaita saapuu keskimäärin tarkasteltavassa aikavälissä.\n", "\n", "Palvelun kestoa voidaan monissa tapauksissa mallintaa onnistuneesti normaalijakaumalla. Tällöin tarvitaan palveluajan keskiarvo ja keskihajonta." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "KESKIARVO_ASIAKAS = 5 #asiakkaiden väli minuutteina\n", "KESKIARVO_PALVELU = 2 #minuuttia\n", "KESKIHAJONTA_PALVELU = 0.5\n", "ASIAKKAITA = 1000" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
| \n", " | seuraava_asiakas | \n", "saapumis_aika | \n", "palvelun_kesto | \n", "palvelun_aloitus | \n", "palvelun_lopetus | \n", "jonotus | \n", "kokonais_aika | \n", "
|---|---|---|---|---|---|---|---|
| 0 | \n", "1.958794 | \n", "1.958794 | \n", "2.579687 | \n", "1.958794 | \n", "4.538481 | \n", "0.000000 | \n", "2.579687 | \n", "
| 1 | \n", "6.997735 | \n", "8.956529 | \n", "1.406137 | \n", "8.956529 | \n", "10.362666 | \n", "0.000000 | \n", "1.406137 | \n", "
| 2 | \n", "1.839778 | \n", "10.796307 | \n", "1.093231 | \n", "10.796307 | \n", "11.889538 | \n", "0.000000 | \n", "1.093231 | \n", "
| 3 | \n", "0.994624 | \n", "11.790931 | \n", "2.324703 | \n", "11.889538 | \n", "14.214241 | \n", "0.098607 | \n", "2.423310 | \n", "
| 4 | \n", "0.485868 | \n", "12.276799 | \n", "2.793450 | \n", "14.214241 | \n", "17.007691 | \n", "1.937442 | \n", "4.730892 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 995 | \n", "0.152206 | \n", "5229.004513 | \n", "1.559721 | \n", "5231.021350 | \n", "5232.581071 | \n", "2.016837 | \n", "3.576558 | \n", "
| 996 | \n", "0.861298 | \n", "5229.865811 | \n", "1.340054 | \n", "5232.581071 | \n", "5233.921125 | \n", "2.715260 | \n", "4.055314 | \n", "
| 997 | \n", "1.068574 | \n", "5230.934385 | \n", "1.818091 | \n", "5233.921125 | \n", "5235.739216 | \n", "2.986740 | \n", "4.804831 | \n", "
| 998 | \n", "4.659112 | \n", "5235.593497 | \n", "1.024468 | \n", "5235.739216 | \n", "5236.763684 | \n", "0.145719 | \n", "1.170187 | \n", "
| 999 | \n", "0.269651 | \n", "5235.863147 | \n", "1.567194 | \n", "5236.763684 | \n", "5238.330877 | \n", "0.900536 | \n", "2.467730 | \n", "
1000 rows × 7 columns
\n", "| \n", " | jonotus | \n", "kokonais_aika | \n", "
|---|---|---|
| count | \n", "1000.000000 | \n", "1000.000000 | \n", "
| mean | \n", "0.605394 | \n", "2.574680 | \n", "
| std | \n", "1.026023 | \n", "1.138684 | \n", "
| min | \n", "0.000000 | \n", "0.406923 | \n", "
| 25% | \n", "0.000000 | \n", "1.817784 | \n", "
| 50% | \n", "0.000000 | \n", "2.294527 | \n", "
| 75% | \n", "1.032675 | \n", "3.058039 | \n", "
| max | \n", "6.995624 | \n", "8.502975 | \n", "