একটি চুল ড্রেসার কনড্রাম


11

আমার হেয়ারড্রেসার স্ট্যাসি সর্বদা একটি সুখী মুখ রাখে, তবে প্রায়ই তার সময় পরিচালনার বিষয়ে জোর থাকে। আজ স্ট্যাসি আমার অ্যাপয়েন্টমেন্টের জন্য বহিষ্কার ছিল এবং খুব ক্ষমা প্রার্থনা করেছিল। আমার চুল কাটার সময় আমি ভাবছিলাম: তার স্ট্যান্ডার্ড অ্যাপয়েন্টমেন্টগুলি কত দিন করা উচিত? (যদি ক্লিন রাউন্ড নম্বরগুলির জন্য গ্রাহকের পছন্দকে এক মুহুর্তের জন্য উপেক্ষা করা যায়))

বিবেচনা করার মতো কিছু হ'ল একটি নির্দিষ্ট 'রিপল ইফেক্ট' যেখানে খুব দেরিতে একজন গ্রাহক বিলম্বিত অ্যাপয়েন্টমেন্টগুলির একটি স্ট্রিংয়ের দিকে নিয়ে যেতে পারেন। বাস্তবে, চুল-ড্রেসাররা স্বাচ্ছন্দ্যের সাথে এই চাপযুক্ত দিনগুলির আশঙ্কা করার কারণে স্পেস অ্যাপয়েন্টমেন্টগুলিতে আরও দীর্ঘতর সময় শিখেন। তবে কিছু পরিসংখ্যানগত প্রতিভা দ্বারা একটি সর্বোত্তম, মার্জিত সমাধান অবশ্যই অর্জন করতে হবে .. (আমরা যদি বাস্তবে কিছুটা নিস্তব্ধ করে থাকি)

ধরে নেওয়া যাক

ক) চুল কাটার সময়গুলি সাধারণত বিতরণ করা হয় এবং

খ) কেবলমাত্র একটি চুলের ড্র্রেসার রয়েছে।

অ্যাপয়েন্টমেন্টগুলি নির্ধারণের জন্য দীর্ঘ সময় ব্যয় করা স্পষ্টতই চুলের পরের সময়টির পরের অ্যাপয়েন্টমেন্টের জন্য অপেক্ষা করা নষ্ট। আসুন এই নষ্ট সময়টি প্রতি মিনিটে 1 ডলার ব্যয় করি।

তবে যদি অ্যাপয়েন্টমেন্টটি বেশি দীর্ঘ না হয়, পরবর্তী গ্রাহককে অপেক্ষা করা থেকে যায়, যা গ্রাহক-প্রেমী স্টেসির প্রতি মিনিটে $ 3 ডলারের জন্য একটি ভারী ব্যয়।

  • স্টেসি প্রতিদিন 8 ঘন্টা অবধি কাজ করে, এবং পর্যাপ্ত চাহিদা রয়েছে যে তিনি যতটা অ্যাপয়েন্টমেন্ট ফিট করতে পারেন তত বেশি পূরণ করতে পারেন

  • গড় চুল কাটা তার 30 মিনিট সময় নেয় একটি স্ট্যান্ড সহ। 10 মিনিটের ডেভ (আসুন ধরে নেওয়া যাক পুরুষদের কাটা এবং মহিলাদের কাটাগুলি একই!)

সম্পাদনা - কেউ কেউ ঠিক বলেছেন যে স্টেসি তাদের নির্ধারিত সময়ের আগেই প্রথম গ্রাহকদের কাছে উপস্থিত থাকতে পারে। এটি জটিলতার আরও একটি স্তর যুক্ত করে, তবে আমরা যদি এটিটিকে বাস্তববাদী সমস্যা হিসাবে বিবেচনা করি তবে আমাদের এটি অন্তর্ভুক্ত করা দরকার। আসুন আমার 90/10 অনুমানটি ভুলে যাই এবং বাস্তবতার আরও কাছাকাছি একটি অনুমানের চেষ্টা করি।

  • কিছু গ্রাহক দেরিতে এবং কিছু প্রথম দিকে। 2 মিনিটের স্ট্যান্ডার্ড বিচ্যুতির সাথে গ্রাহকদের গড় 2 মিনিট দেরি হয় (যথাযথ বাস্তবের কাছেই মনে হয়?)

ঠিক কতদিন তার অ্যাপয়েন্টমেন্টগুলি হওয়া উচিত?


@ এক্সপ্ল্যানেশন দুঃখিত আমি আপনার উপর লক্ষ্য পোস্টগুলি সরিয়েছি! আমি নিশ্চিত যে পাঠকরা আপনার উত্তরটির প্রশংসা করবেন।


2
তার যদি পূর্বের চুল কাটা নির্ধারিত সময়ের আগে শুরু করার ক্ষমতা থাকে তবে তাকে কী তা করার অনুমতি দেওয়া হচ্ছে না?
ধরে নেওয়া সাধারণ

এন(μ=8 ঘন্টার,σ=40 মিনিট)

আপনি বেশ কয়েকটা তথ্য হারিয়েছেন। 1) প্রথম বারের বিতরণ বা সত্য যে প্রাথমিক গ্রাহকরা তাদের নির্ধারিত অ্যাপয়েন্টমেন্ট সময় না হওয়া পর্যন্ত স্ট্যাসির উপর কোনও মূল্যায়ন করেন না এবং ২) দেরী সময়ের বিতরণ। হয়ত আপনার নির্ধারিত আগমনের সময় অনুসারে আগমনের সময়গুলির বিতরণ নির্দিষ্ট করা উচিত?
jbowman

এছাড়াও, আট ঘন্টা শেষে যদি সে অ্যাপয়েন্টমেন্ট নিয়ে কাজটি না করে তবে কী ঘটে? যদি তিনি কাজ চালিয়ে যান, স্পষ্টতই শেষ অ্যাপয়েন্টমেন্টটি নির্ধারিত হবে কতগুলি অ্যাপয়েন্টমেন্ট নির্ধারিত হোক না কেন, প্রথমটির (প্রথম দিনের যা শুরু হতে পারে) পরে 8 ঘন্টা নির্ধারিত হবে।
jboman

উত্তর:


13

এই সমস্যাটিতে প্রচুর চলন্ত অংশ রয়েছে, যা এটি সিমুলেশনের জন্য উপযুক্ত।

প্রথমে, এলভিস মন্তব্যে যেমন উল্লেখ করেছেন, মনে হচ্ছে স্টেসির প্রায় 16 টি অ্যাপয়েন্টমেন্ট নেওয়া উচিত, কারণ প্রত্যেকেই প্রায় আধা ঘন্টা। তবে আপনি জানেন যে অ্যাপয়েন্টমেন্টগুলি বিলম্ব হতে শুরু করে, জিনিসগুলি পরে এবং পরে স্থানান্তরিত হতে শুরু করে - সুতরাং স্টেসি যদি কেবল একটি অ্যাপয়েন্টমেন্ট শুরু করতে যাচ্ছেন যদি তার আধ ঘন্টা বাকি থাকে (মেঝে থেকে চুল ঝুলানোর জন্য এত কিছু, স্টেসি) ?) তাহলে আমাদের 16 টিরও কম স্লট থাকবে, যদি আমরা বিশ্রামের সময় না দিয়ে অ্যাপয়েন্টমেন্টগুলি নির্ধারণের জন্য একটি স্ফটিক বল ব্যবহার করি।

অনুকূলভাবে ব্যবধানযুক্ত চুল কাটা

পরবর্তী সিমুলেশনে, আমরা অ্যাপয়েন্টমেন্টের দৈর্ঘ্যের ক্রিয়া হিসাবে ব্যয়ের বক্ররেখাটি অনুসন্ধান করতে পারি। অবশ্যই, বাকি প্যারামিটারগুলিও এখানে একটি ভূমিকা পালন করবে - এবং বাস্তবে, স্টেসি তার অ্যাপয়েন্টমেন্টগুলি ভগ্নাংশের কয়েক মিনিটের ব্যবধানে নির্ধারণ করবে না, তবে এটি আমাদের কী চলছে তা সম্পর্কে কিছুটা অন্তর্দৃষ্টি দেয়।

এখানে চিত্র বর্ণনা লিখুন

স্টেসির রঙ হিসাবে কাজ করার সময়টিও আমি পরিকল্পনা করেছি। আমি স্থির করেছিলাম যে স্টেসি তার শেষ অ্যাপয়েন্টমেন্টটি 7:30 পরে কখনই নির্ধারণ করবে না, তবে কখনও কখনও অ্যাপয়েন্টমেন্টটি দেরিতে দেখা যায়, বা দেরি হয়েছিল! আপনি দেখতে পাচ্ছেন যে সে ঘরে যাওয়ার সময়টি পরিমাণমতো হয়েছে, যাতে অ্যাপয়েন্টমেন্টগুলি দীর্ঘায়িত হওয়ার সাথে সাথে আপনি আরও একটি অ্যাপয়েন্টমেন্ট পান এবং তারপরে আর দেরি করে কাজ করতে হবে না। এবং আমি মনে করি এটি এখানে একটি অনুপস্থিত উপাদান - সম্ভবত আপনার অ্যাপয়েন্টমেন্টগুলির 45 মিনিটের ব্যবধানে সময় নির্ধারণ করা দুর্দান্ত, তবে আপনি এটি 40 এর মধ্যে চেপে ধরতে পারলে একটি অতিরিক্ত অ্যাপয়েন্টমেন্ট পাবেন That স্টেসির অপেক্ষার মাধ্যমে এই ব্যয় সংযুক্ত করা হয়েছে (এজন্য ব্যয়টি কেন যায়) অ্যাপয়েন্টমেন্টের দৈর্ঘ্য বাড়ার সাথে সাথে) তবে স্ট্যাসির সময়ের অপেক্ষার আপনার মূল্যায়ন সঠিক নাও হতে পারে।

যাই হোক, মজার সমস্যা! এবং কিছু ggplot উপকারিতা শেখার একটি ভাল উপায় এবং মনে রাখবেন যে আমার আর সিনট্যাক্সটি অত্যন্ত নড়বড়ে। :)

আমার কোডটি নীচে - উন্নতির জন্য প্রস্তাব প্রস্তাব বিনা দ্বিধায় দয়া করে।


শীর্ষ চক্রান্তের জন্য কোড তৈরি করতে:

hairtime = 30
hairsd = 10

nSim = 1000
allCuts = rep(0,nSim)
allTime = rep(0,nSim)

for (i in 1:nSim) {
    t = 0
    ncuts = 0

    while (t < 7.5) {
        ncuts = ncuts+1
        nexthairtime = rnorm(1,hairtime,hairsd)
        t = t+(nexthairtime/60)
    }
    allCuts[i] = ncuts
    allTime[i] = t
}

hist(allCuts,main="Number of haircuts in an 8 hour day",xlab="Customers")

দ্বিতীয় সিমুলেশনটি অনেক দীর্ঘ ...

nSim = 100
allCuts = rep(0,nSim)
allTime = rep(0,nSim)

allCost = rep(0,nSim)

lateMean = 10
lateSD = 3

staceyWasted = 1
customerWasted = 3

allLengths = seq(30,60,0.25)

# Keep everything in 'long form' just to make our plotting lives easier later
allApptCosts = data.frame(matrix(ncol=3,nrow=length(allLengths)*nSim))
names(allApptCosts) <- c("Appt.Length","Cost","Time")
ind = 1

# for every appointment length...
for (a in 1:length(allLengths)) {
    apptlen = allLengths[a]
    # ...simulate the time, and the cost of cutting hair.
    for (i in 1:nSim) {
        appts = seq(from=0,to=(8-hairtime/60),by=apptlen/60)
        t = 0
        cost = 0
        ncuts = 0

        for (a in 1:length(appts)) {
            customerArrival = appts[a]
            # late!            
            if (runif(1)>0.9) {
                customerArrival = appts[a]+rnorm(1,lateMean,lateSD)/60
            }

            waitTime = t-customerArrival
            # negative waitTime means the customer arrives late
            cost = cost+max(waitTime,0)*customerWasted+abs(min(waitTime,0))*staceyWasted
                                        # get the haircut
            nexthairtime = rnorm(1,hairtime,hairsd)
            t = customerArrival+(nexthairtime/60)
        }
        allCost[i] = cost
        allApptCosts[ind,1] = apptlen
        allApptCosts[ind,2] = cost
        allApptCosts[ind,3] = t
        ind = ind+1
    }
}

qplot(Appt.Length,Cost,geom=c("point"),alpha=I(0.75),color=Time,data=allApptCosts,xlab="Appointment Length (minutes)",ylab="Cost")+
      geom_smooth(color="black",size=2)+
    opts(axis.title.x=theme_text(size=16))+
    opts(axis.title.y=theme_text(size=16))+
    opts(axis.text.x=theme_text(size=14))+
    opts(axis.text.y=theme_text(size=14))+
    opts(legend.text=theme_text(size=12))+
    opts(legend.title=theme_text(size=12,hjust=-.2))

1
নিস! আপনি কোড দেখাচ্ছে আপত্তি না?
এলভিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.