Въведение в Solver - Съвети за Excel

Съдържание

Solver е безплатна добавка от дните на Lotus 1-2-3

Excel не беше първата програма за електронни таблици. Lotus 1-2-3 не беше първата програма за електронни таблици. Първата програма за електронни таблици е VisiCalc през 1979 г. Разработена от Дан Бриклин и Боб Франкстън, VisiCalc е публикувана от Dan Fylstra. Днес Дан управлява Frontline Systems. Неговата компания е написала Solver, използван в Excel. Той също така е разработил цял набор от аналитичен софтуер, който работи с Excel.

Ако имате Excel, имате Solver. Може да не е активиран, но го имате. За да активирате Solver в Excel, натиснете alt = "" + T, последвано от I. Добавете отметка до Solver.

Разрешен разрешител в Excel

За да използвате успешно Solver, трябва да изградите модел на работен лист, който има три елемента:

  • Трябва да има една клетка за цел. Това е клетка, която или искате да минимизирате, увеличите или зададете на определена стойност.
  • Може да има много входни клетки. Това е едно основно подобрение спрямо Goal Seek, което може да се справи само с една входна клетка.
  • Може да има ограничения.

Вашата цел е да изградите изискванията за графици за увеселителен парк. Всеки служител ще работи пет поредни дни и след това ще има два почивни дни. Има седем различни възможни начина да планирате някого за пет поредни дни и два почивни дни. Те са показани като текст в A4: A10. Сините клетки в B4: B10 са входните клетки. Тук посочвате колко хора работите във всеки график.

Целта на клетката е общата ТРЗ на седмица, показана в B17. Това е правилна математика: Общо хора от B11 по 68 $ заплата на човек на ден. Ще помолите Solver да намери начин да минимизира седмичната работна заплата.

Червеното поле показва стойности, които няма да се променят. Това е колко хора ви трябват да работят в парка всеки ден от седмицата. В натоварените дни през уикенда са ви необходими поне 30 души, но поне 12 в понеделник и вторник. Оранжевите клетки използват SUMPRODUCT, за да изчислят колко души ще бъдат насрочени всеки ден въз основа на входовете в сините клетки.

Иконите в ред 15 показват дали имате нужда от повече хора или от по-малко хора или дали имате точно точния брой хора.

Първо се опитах да реша това без Solver. Ходих с по 4 служители всеки ден. Това беше чудесно, но в неделя нямах достатъчно хора. И така, започнах да увеличавам графиците, които ще ми дадат повече служители в неделя. В крайна сметка получих нещо, което работи: 38 служители и 2 584 долара седмична работна заплата.

Примерен набор от данни

Щракнете върху иконата Solver в раздела Data. Кажете на Solver, че се опитвате да настроите ведомостта в B17 на минимум. Входните клетки са B4: B10.

Ограниченията попадат в очевидни и не толкова очевидни категории.

Първото очевидно ограничение е, че D12: J12 трябва да бъде> = D14: J14.

Но ако се опитате да стартирате Solver сега, бихте получили странни резултати, когато имате частичен брой хора и вероятно отрицателен брой хора, работещи по определени графици.

Макар да ви се струва очевидно, че не можете да наемете 0,39 души, трябва да добавите ограничения, за да кажете на Solver, че B4: B10 са> = 0 и че B4: B10 са цели числа.

Решаващи параметри

Изберете Simplex LP като метод за решаване и изберете Solve. След няколко минути Solver представя едно оптимално решение.

Solver намери начин да покрие персонала на увеселителния парк, като използва 30 служители вместо 38. Спестяванията на седмица са 544 $ - или над 7000 $ през лятото.

Използване на Solver

Забележете петте звезди под „Необходими служители“. Графикът, който Solver предложи, отговаря на вашите точни нужди за пет от седемте дни. Страничният продукт е, че ще имате повече служители в сряда и четвъртък, отколкото наистина имате нужда.

Мога да разбера как Solver излезе с това решение. Имате нужда от много хора в събота, неделя и петък. Един от начините да накараме хората там в този ден е да им дадем почивен ден в понеделник и вторник. Ето защо Solver пусна 18 души с почивен понеделник и вторник.

Но това, че Solver излезе с оптимално решение, не означава, че няма други също толкова оптимални решения.

Когато само гадаех за персонала, всъщност нямах добра стратегия.

След като Solver ми даде едно от оптималните решения, мога да си сложа логическата шапка. Наличието на 28 служители в колеж в сряда и четвъртък, когато имате нужда само от 15 или 18 служители, ще доведе до проблеми. Няма да е достатъчно да се направи. Освен това, с точно правилния брой на служителите за пет дни, ще трябва да се обадите на някой за извънреден труд, ако някой друг се обади на болен.

Вярвам в Solver, че трябва да имам 30 души, за да направя тази работа. Но се обзалагам, че мога да пренаредя тези хора, за да изравнят графика и да осигурят малък буфер в други дни.

Например, даването на почивка на сряда и четвъртък също гарантира, че лицето е на работа петък, събота и неделя. И така, преместих ръчно някои работници от реда в понеделник, вторник в реда в сряда четвъртък. Продължих ръчно да включвам различни комбинации и измислих това решение, което има същите разходи за заплати като Solver, но по-добри нематериални активи. Понастоящем ситуацията с прекалено много служители е четири дни вместо два. Това означава, че можете да се справите с обаждания от понеделник до четвъртък, без да се налага да се обаждате на някой от уикенда.

Резултатът

Лошо ли е, че успях да намеря по-добро решение от Solver? Не. Факт е, че не бих могъл да стигна до това решение, без да използвам Solver. След като Solver ми даде модел, който минимизира разходите, успях да използвам логика за нематериалните активи, за да запазя същата работна заплата.

Ако трябва да решите проблеми, които са по-сложни, отколкото Solver може да се справи, разгледайте първокласните решения на Excel, достъпни от Frontline Systems: http://mrx.cl/solver77

Благодаря на Dan Fylstra и Frontline Systems за този пример. Уолтър Мур илюстрира XL влакче в увеселителен парк.

Гледам видео

  • Solver е безплатна добавка от дните на Lotus 1-2-3
  • Solver е продукт на основателя на Visicorp Дан Филстра
  • Solver във вашия Excel е по-малка версия на solvers за тежък режим
  • Научете повече за професионалните решатели: http://mrx.cl/solver77
  • За да инсталирате Solver, въведете alt = "" + T, след това I. Проверете Solver.
  • Решителят ще бъде намерен в дясната страна на раздела Данни
  • Искате да имате обективна клетка, която се опитвате да минимизирате или увеличите.
  • Можете да посочите множество входни клетки.
  • Можете да посочите ограничения, включително някои, които не бихте очаквали:
  • Няма получовеци: Използвайте INT за Integer
  • Solver ще намери оптимално решение, но може да има и други, които са свързани
  • След като получите решението Solver, може да успеете да го промените.

Видео транскрипция

Научете Excel от подкаст, епизод 2036 - Въведение в Solver!

Добре, подкастирам цялата тази книга, кликнете върху „i“ в горния десен ъгъл, за да стигнете до плейлиста, където можете да пуснете всички видеоклипове!

Добре дошли отново в netcast, аз съм Бил Джелен. Наскоро говорихме за някакъв анализ какво като, като Goal Seek, знаете ли, с една входна клетка, която променяте, но какво, ако имате нещо по-сложно? Има страхотен инструмент, наречен Solver, Solver съществува от дълго време, гарантирам, че ако имате Excel и работите под Windows, имате Solver, просто вероятно не е включен. За да го включите, трябва да отидете на alt = "" T и след това аз, така че T за Том, аз за сладолед и да поставите отметка в това квадратче за Solver, щракнете върху OK и след няколко секунди ще имате раздел Solver тук от дясната страна. Добре, и ние ще създадем модел тук, който решаващият може да бъде в състояние да реши, имаме увеселителен парк, опитваме се да изведем колко служители да планираме. Всеки работи пет поредни дни, така чеs наистина седем възможни графика, когато сте на път, неделя понеделник, понеделник вторник, вторник сряда. Трябва да разберем колко служители да включим във всеки от тези графици.

И така, просто една малка математика тук, правене на някои ПРОДУКТИ, брой служители пъти в неделя, за да разберете колко хора са били там в неделя, понеделник, вторник, сряда. И това, което научихме чрез експлоатацията на този увеселителен парк, е, че имаме нужда от много хора в събота и неделя. 30 души в събота и неделя, през седмицата понеделник, вторник, някак бавно, 12 служители ще могат да го направят. Добре, просто като дойдете тук и просто се прецакате, знаете ли, опитвайки се да разберете правилните числа, можете просто да продължите да включвате нещата, но със седем различни избора това ще отнеме вечно, така е.

Сега в Solver това, което имаме, е, имаме поредица входни клетки, а в безплатната версия на Solver мисля, че можете да имате, сто ли е? Не знам, има някакъв номер и ако трябва да надхвърлите това, има Premium Solver, който можете да получите от Frontline Systems. Добре, така че имаме някои входни клетки, имаме някои ограничителни клетки и след това трябва да намалите всичко до окончателно число. Така че в моя случай се опитвам да минимизирам работната заплата на седмица, така че зеленото число е това, което искам да опитам и оптимизирам, добре, ето какво ще направим!

Решител, тук е целевата клетка, това е зелената клетка и аз искам да я задам на минимална стойност, да разбера персонала, който ми дава минималната стойност, чрез промяна на тези сини клетки. И тогава тук са ограниченията, добре, така че първото ограничение е, че общата сума на графика трябва да бъде> = червената секция и можем да направим всичко това като едно ограничение. Внимавайте колко е готино, всички тези клетки трябва да са> = тези съответни клетки тук, страхотно, щракнете върху Добави, добре, но тогава има и други неща, за които не бихте се сетили. Например Solver в този момент може да реши, че е най-добре да има 17 души по този график, 43 души по график и -7 души по този график. Добре, така че трябва да кажем на Solver, че тези входни клетки трябва да са цяло число, щракнете върху Добавяне. И също, не можем да накараме някой да не се появи,и ще ни върнат заплатата, нали? Така че ще кажем, че тези клетки трябва да бъдат> = 0, щракнете върху Добавяне, връщаме се сега, имаме нашите три ограничения там.

Има три различни начина за решаване, а този следва линейна математика, така че можем просто да отидем на Simplex LP. Ако този не работи, тогава непременно опитайте другите два, имал съм случаи, когато Simplex казва, че не може да намери решение, и едно от другите две работи. Frontline Systems има страхотни уроци за Solver, просто се опитвам да ви преведа през първия ви ден тук, не провъзгласявам за експерт по Solver. След като имах Solver, който нямаше да работи, и изпратих бележка във Frontline Systems, и уау, получих това страхотно писмо от 5 страници обратно, точно от самия Дан Филстра, президента на Solver! И всичко започна: „Скъпи Бил, чудесно е да се чуем!“ И след това продължи 4,9 страници, всичко това беше почти изцяло над главата ми, добре. Но знаете ли, знам достатъчно за Solver, за да го преодолея, добре,така че ще щракнем тук на "Решаване", той намери решение, "Всички ограничения и условия за оптималност са изпълнени." Ще го запазя, мога да създам някои отчети, не е необходимо да го правя точно сега. О, всъщност мога да запазя сценарий, вчера се подигравах на сценарии, може би Solver би могъл да създаде нов сценарий за мен, така че ще щракнем OK.

Добре и със сигурност това ни спести пари, преди това писахме 2584, а сега стигнахме до 2040. Така че имаме нужда от много хора в понеделник и вторник, добре, някои хора, 2 души в сряда четвъртък и след това петък събота. Е, това е страхотно, никога не бих излязъл случайно с този набор от отговори, добре, но това означава ли, че това е най-добрият отговор? Е, това означава, че това е минималната работна заплата, но вероятно мога да измисля различен набор от отговори, които все още биха имали тази минимална работна заплата. Има и други начини да направите това, това може да е малко по-добър график. Както например, в момента имаме 28 души в сряда и четвъртък, когато ни трябват само 15 и 18, това са много хора. Помислете кой работи в увеселителните паркове, това са деца от колежа вкъщи за почивка,това ще бъде проблем, ако имаме толкова много допълнителни хора. А в понеделник вторник сме дори мъртви, точно там, където искаме да бъдем. Това означава, че ако някой, на когото отивам да се откаже болен, сега ще трябва, знаете ли, да повика някого и да му плати време и половина, защото той вече е работил пет други дни.

Добре, така че просто с малко проста математика тук, ако бих отнел 8 от понеделник вторник и го направих 10, вземете тези 8 и ги добавете към сряда четвъртък, добре. Сега имам решение на Solver с точно същия отговор, 2040 г., те получиха точния брой хора. Просто балансирам графика и сега имаме 8 допълнителни, 8 допълнителни, 3 допълнителни и 2 допълнителни и точно това, от което се нуждаем през уикенда, които са, знаете ли, пълният сценарий за персонала. За мен това е малко по-добро от това, което е измислил Solver, означава ли това, че solver не е успял? Не, абсолютно не, защото никога нямаше да се доближа до този момент без Solver. След като Solver ми даде отговора, да, успях да го оправя малко и да стигна там, добре. Съвет № 37, „40 най-велики съвета на Excel за всички времена“, приближавайки се към края на първите 40, страхотно малко въведение в Solver.Ръководството за всички подкасти от тази поредица е тук, „MrExcel XL - 40 най-добри съвета на Excel за всички времена“, можете да получите електронната книга само за 10 долара, да отпечатате книга за 25 долара, щракнете върху „i“ в горната част -десен ъгъл на ръка!

Добре, резюме: Решител, ако сте в Windows версии на Excel, Lotus 1-2-3, той е там, създаден е от основателя на Visicorp Дан Филстра. Това е безплатна версия на тежкотоварните решения, ето линк за проверка на тежкотоварните решения, който ще бъде посочен в коментарите в YouTube. Вероятно те просто не са инсталирани, alt = "" TI, поставете отметка Solver, погледнете от дясната страна на раздела Data, за да намерите Solver. Добре, трябва да имате обективна клетка, която се опитвате да минимизирате или увеличите или зададете на стойност, един диапазон от входни клетки. Посочете ограничения, включително нещо, което не би очаквало, като аз трябваше да кажа „Няма полу-хора“ и „Няма отрицателни хора“. Solver ще намери оптималното решение, но може да има и други, които са свързани и може да успеете да го промените, за да получите по-добро решение.

Добре, ето ви, искам да ви благодаря, че се отбихте, ще се видим следващия път за поредното излъчване от!

Свали файл

Изтеглете примерния файл тук: Podcast2036.xlsx

Интересни статии...