TAS:Situace/Vozidla/Ceny/Penalizace za nedodržení délky směny: Porovnání verzí
(Nová stránka) |
(updated to new syntax) |
||
(Nejsou zobrazeny 2 mezilehlé verze od stejného uživatele.) | |||
Řádek 5: | Řádek 5: | ||
* Násobení * | * Násobení * | ||
* Dělení / | * Dělení / | ||
* Mocnina ^ | |||
Desetinná čísla se zde zapisují s tečkou, | Desetinná čísla se zde zapisují s tečkou nebo čárkou, '''1.5'''i '''1,5''' jsou validní. | ||
Funkci lze zadat po částech ve tvaru ''piecewise(výraz1 | Funkci lze zadat po částech ve tvaru ''piecewise(výraz1; hranice1; výraz2; hranice2; výraz3)''. Vyhodnotí se jako: | ||
* ''výraz1'' pokud ''x < hranice1'' | * ''výraz1'' pokud ''x < hranice1'' | ||
Řádek 15: | Řádek 16: | ||
Seznam vstupů ''piecewise'' v závorkách začíná a končí výrazem, může být libovolně dlouhý. Hranice musí být konstantní a zapsány od nejmenší po největší. | Seznam vstupů ''piecewise'' v závorkách začíná a končí výrazem, může být libovolně dlouhý. Hranice musí být konstantní a zapsány od nejmenší po největší. | ||
Například ''piecewise(x | Například ''piecewise(x; 2; x ; 1 ; x)'' tedy není zapsáno správně. Naopak ''piecewise(x; 1; x; 2; x)'' je zapsáno správně a ekvivalentní ''x''. | ||
Dále lze ve výrazech používat funkce ''sin, cos, exp, ln''. Jejich argumenty musí být vždy v závorkách, například ''exp(x)''. | Dále lze ve výrazech používat funkce ''sin, cos, exp, ln''. Jejich argumenty musí být vždy v závorkách, například ''exp(x)''. | ||
= Příklad použití = | |||
Chceme vyrovnat směny řidičů tak, aby byly v rozmezí 4 až 5 hodin. Budeme počítat například penalizaci 1 za každou minutu pod 240 minut a 4 za každou minutu nad 300. Mezi 204 a 300 minutami nechceme penalizovat vůbec.<br/> | |||
Zadáváme tedy funkci po částech jako ''piecewise(240 - x; 240; 0; 300; 4 * (x - 300))''. | |||
Pokud se ukáže, že solver nevyrovnává směny dostatečně, můžeme zvolit rychleji rostoucí funkci, například ''10 * piecewise(240 - x; 240; 0; 300; 4 * (x - 300))'' nebo ''piecewise((240 - x) ^ 2; 240; 0; 300; 4 * (x - 300) ^ 2)''. |
Aktuální verze z 30. 10. 2023, 08:50
Penalizace se počítá z celkového času každé směny podle funkce zadané ve sloupci. Funkce se zadává výrazem v jediné proměnné x. Povoleny jsou závorky a operace:
- Sčítání +
- Odčítání -
- Násobení *
- Dělení /
- Mocnina ^
Desetinná čísla se zde zapisují s tečkou nebo čárkou, 1.5i 1,5 jsou validní.
Funkci lze zadat po částech ve tvaru piecewise(výraz1; hranice1; výraz2; hranice2; výraz3). Vyhodnotí se jako:
- výraz1 pokud x < hranice1
- výraz2 pokud x < hranice1 < hranice2
- výraz3 pokud harnice2 < x
Seznam vstupů piecewise v závorkách začíná a končí výrazem, může být libovolně dlouhý. Hranice musí být konstantní a zapsány od nejmenší po největší. Například piecewise(x; 2; x ; 1 ; x) tedy není zapsáno správně. Naopak piecewise(x; 1; x; 2; x) je zapsáno správně a ekvivalentní x.
Dále lze ve výrazech používat funkce sin, cos, exp, ln. Jejich argumenty musí být vždy v závorkách, například exp(x).
Příklad použití
Chceme vyrovnat směny řidičů tak, aby byly v rozmezí 4 až 5 hodin. Budeme počítat například penalizaci 1 za každou minutu pod 240 minut a 4 za každou minutu nad 300. Mezi 204 a 300 minutami nechceme penalizovat vůbec.
Zadáváme tedy funkci po částech jako piecewise(240 - x; 240; 0; 300; 4 * (x - 300)).
Pokud se ukáže, že solver nevyrovnává směny dostatečně, můžeme zvolit rychleji rostoucí funkci, například 10 * piecewise(240 - x; 240; 0; 300; 4 * (x - 300)) nebo piecewise((240 - x) ^ 2; 240; 0; 300; 4 * (x - 300) ^ 2).