TAS:Situace/Vozidla/Ceny/Penalizace za nedodržení délky směny: Porovnání verzí

Z Solvertech
Skočit na navigaci Skočit na vyhledávání
(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, tedy '''1.5''', nikoliv '''1,5'''.
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, hranice1, výraz2, hranice2, výraz3)''. Vyhodnotí se jako:
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, 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''.
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).