{ "cells": [ { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "C:\\Users\\brandl\r\n", "clearing ivy cache\r\n" ] } ], "source": [ "val userHome = System.getProperty(\"user.home\")\n", "\n", "println(userHome)\n", "\n", "if(userHome.contains(\"brandl\")){\n", " println(\"clearing ivy cache\")\n", " java.io.File(\"$userHome/.ivy2/cache/org.kalasim/\").deleteRecursively()\n", "}\n" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "@file:Repository(\"*mavenLocal\")\n", "@file:DependsOn(\"com.github.holgerbrandl:kalasim:0.7.99\")" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import org.kalasim.*" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "//:classpath" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [ { "data": { "text/html": [ "
\n", " " ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "%use lets-plot" ] }, { "cell_type": "code", "execution_count": 27, "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "import org.jetbrains.letsPlot.ggsize\n", "import org.jetbrains.letsPlot.intern.Plot\n", "import org.jetbrains.letsPlot.lets_plot\n", "import krangl.irisData\n", "import krangl.toMap\n", "import org.kalasim.examples.MM1Queue\n", "import org.kalasim.plot.letsplot.display\n", "import org.kalasim.plot.letsplot.displayStateTimeline\n", "import org.kalasim.analysis.InteractionEvent\n", "import kotlinx.datetime.Instant\n", "import kotlin.time.DurationUnit\n" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "rho is 0.75. With rho>1 the system would be unstable, because there are more arrivals then the server can serve.\r\n" ] } ], "source": [ "val mm1 = MM1Queue().apply {\n", " run(100)\n", "}" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "action | curComponent | details | source | logLevel | time |
---|---|---|---|---|---|
Created | main | capacity=1 | server | INFO | .00 |
create | main | ComponentGenerator.1 | INFO | .00 | |
activate | main | scheduled for .00 | ComponentGenerator.1 | INFO | .00 |
run +100.00 | main | scheduled for 100.00 | main | INFO | .00 |
hold +.68 | ComponentGenerator.1 | scheduled for .68 | ComponentGenerator.1 | INFO | .00 |
create | ComponentGenerator.1 | Customer.1 | INFO | .68 | |
activate | ComponentGenerator.1 | scheduled for .68 | Customer.1 | INFO | .68 |
hold +.55 | ComponentGenerator.1 | scheduled for 1.23 | ComponentGenerator.1 | INFO | .68 |
Requesting 1.0 from server with priority null a... | Customer.1 | null | Customer.1 | INFO | .68 |
null | Customer.1 | null | Customer.1 | INFO | .68 |
... with 732 more rows. Shape: 742 x 6. \n", "
" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ " mm1.traces.filterIsInstance