Автор Тема: Софтуер за изработване на комбинации  (Прочетена 20292 пъти)

4096bits

  • Напреднали
  • *****
  • Публикации: 6152
    • Профил
Re: Софтуер за изработване на комбинации
« Отговор #45 -: Jul 19, 2018, 18:57 »
Python?
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

laskov

  • Напреднали
  • *****
  • Публикации: 3166
    • Профил
Re: Софтуер за изработване на комбинации
« Отговор #46 -: Jul 19, 2018, 21:49 »
1. Извинявайте, че не съм прочел 3-те страници преди това. Сигурен съм, че има интересни идеи по темата.
2. Извинявайте, че няма да пиша по темата, а ще пиша по проблема. Друг е въпросът, че трябваше да проявя доста търпение, за да стигна до проблема на автора и понеже вече бях на ръба, го прочетох по диагонал.

Касовият апарат (КА) има нещо, което се казва "Електронна касова лента" (ЕКЛ).

Използвайки това нещо, не е необходимо да разчиташ на каквито и да са отчети, генерирани от КА.

Моят опит е с КА на Датекс. Датекс предоставят програма, с която по RS-232, можеш да си програмираш КА. Можеш също да си свалиш ЕКЛ и да си я запишеш в текстов файл.

ЕКЛ съдържа ВСЕКИ касов бон, отпечатан от КА и започва от датата на фискализацията му (може и отпреди това да е, ама не съм сигурен). Правиш си програмка, която да анализира този файл и да пълни данните в БД, с което можеш да имаш всяка отделна продажба и да си правиш каквито си искаш гимнастики с данните. Ако искаш, мога да ти предоставя такава, която търси отчетите по артикули, които предхождат всеки дневен финансов отчет.

ВНИмание! Прочитането на ЕКЛ с програмата на Датекс Е БАВНО! Може да ти отнеме часове, в зависимост от периода, който си задал. Начините да увеличиш бързодействието са:
1. Вдигаш скоростта на RS-232 на максималната 115200. Това става от КА. Не може от програмата да програмираш параметрите на RS-232 на КА.
2. При четенето, след като го стартираш, изкарваш някакъв прозорец на друга програма отпред, така че този на Датекс да не се вижда - скролването на прочетените данни и изписването на номера на прочетения ред бавят работата на програмата.
3. Въпреки тези трикове, четенето е бавно. Основният определящ фактор е броят линии, отпечатани за зададения период.

Надявам се да съм бил полезен.

ПС: Впрочем, защо темата е в кошчето?
« Последна редакция: Jul 19, 2018, 22:00 от laskov »
Активен

Не си мислете, че понеже Вие мислите правилно, всички мислят като Вас! Затова, когато има избори, идете и гласувайте, за да не сте изненадани после от резултата, и за да не твърди всяка партия, че тя е спечелила, а Б.Б. (С.С., ...) е загубил, а трети да управлява.  Наздраве!  [_]3

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 8780
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: Софтуер за изработване на комбинации
« Отговор #47 -: Jul 20, 2018, 07:34 »
ПЪРВО! Да изкажа своята благодарност, че Ласков е писал в моя тема. Оценявам го високо.

Защо темата е в кошчето? Ами то почти всички мои теми ги създавам там. Софтуер за комбинаторика няма общо с ГНУ/Линукс или коя да е ОС. Това е математически проблем с алгометрична реализация.

Второ. Мога да те поздравя. Датекс е една от (ако не най) по-здравите физически марки. Дефектира много рядко. Държеливи са.

=*=

Следва OFFTOPIC.

На мен специално никога не ми е допадал външния им вид. Имам смътно подозрение, че дизайнера на Датекс е скрит фашист. Остри, неприветливи форми и създавано впечатление за агресия. Добре може би това не се отнася до този новия, „джобен“ банан с пижам', но за всички останали е в сила. А този новия е просто грозна версия на push-овете на DJ-те. Но е далеч по-красив, от всичко, което са правили, чак до легендарния А300.

Както казах преди време на Наката, сегашните ЕКАФП не са нищо повече от старите елки. Имат sim. Имат SD. Но това е. Технологично са в седемдесетте години на миналия век.

Ами ти сам го каза човек!!! Говорим за сериен порт! Между другото последното е измама. Всъщност въпросния порт не е сериен в смисъла на аналогов. Той е USB 2 B. Но е направен да имитира сериен!!! Едвам се сдържам да не богохулствам. Физически е достатъчно бърз, но поради древната технология, ти не можеш да се възползваш от това. А и няма смисъл. В паметта на тези ЕКАФП буквално няма нищо. А това нищо е записано върху бавен носител (древни SD, не си мислете за десятки, мислете си за началото на века) и се обработват от още по-бавен AVR или друго безумие. В общия случай е AVR.

Сам го каза, там има записана дата и продажба, заедно със стойността ѝ. Ситуацията е толкова глупава, че в днешно време всички апарати записват и стойността на ДДС, дори ако предприятието не е регистрирано по реда на ЗДДС. А това преди не бе така. Спестили са си един разход.

То бива наглост от производителите, но това не бива. Значи имаш държавно гарантиран бизнес, които засяга всички икономически обекти.
Продаваш, на каквито цени не те е срам. Всички производители сте в явен картел, по-явен и от този на безнзинджийте. Умишлено пробутваш първобитни технологии, ако изобщо могат да се нарекат технологии. И накрая си спестяваш дори това. А нам всьо равно. Всички клиенти са еднакви. Телетата под ножа!

Още по-голям OFFTOPIC.

По-модерно е да се каже, овцете и козите. Макар и това  да е смешен плач. Да сме спасели стадата. А ве, какво точно да им спасяваме? Ти не си някакъв благотворител. Ти ги гледаш тия животни, за да ги заколяш. Сега просто ще се случи по-рано от предвиденото. Много съжалявам, че не мога да ти съчувствам. Воден си от същите мотиви, каквито и министъра. Ама ти се бориш за сто кинта, а министъра да гушне сто милиона? И за това не мога да ти съчувствам. Той е по-хитър от теб и те прецаква по правилата. Играта е същата.

=*=

Да се върнем в темата. Отново да благодаря за включването на Вальо!

Толкова рядко го прави напоследък. Поласкан съм, че е в моя тема.

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

Обаче на мен това не ми върши работа. Нямам физически достъп до апарата. Той е на обекта, аз съм в кантората и в общи линии, тяхното работно време е по-дълго от моето, като освен в часове включва и дни, които за мен са почивни.

Но дори да предположим, че може да се организира такова нещо в неделя да речем. Всяка последна на месеца или по-скоро първата на следващия. Не е много вероятно, но ей така за хипотезата.

Какво ще прочета вътре? Вътре ще прочета всяка една продажба, чието обобщение е лентичката. Това на пръв прочит е добре. Смалява възможните комбинации от няколко стотици (оптимистично десетки) на вид продажба до 1, 2, 5. Но вече имам не 40, 2 000 (грубо по 500 реални продажби) обекта за комбиниране. Ръчната обработка на тези данни в никакъв случай няма да е по-бърза от лентичките. Пак ще ми е необходима софтуерна комбинаторика.

Нямаше да е проблем да го правя, ако това бе единственото ми задължение за месеца. Но, както споменах: Тази „услуга“ не е предвидена в настоящите ни условия за обслужване. Но резултата от нея все така е изискуем.

Трябва да правя нещото възможно най-малко време, за да смаля загубата за работодателя ми (изразяваща се в заплатата ми). На моя работодател определено ще му е по-евтино да се освободи от този клиент и мен като служител. Безкрайно съм доволен, че още не узрял за идеята.

=*=

В момента почти съжалявам, че в първи курс (девети клас приравнено) не седях много на дупето си и не учих вариации, комбинации и сие. Спомените ми са повече от слаби и не особено полезни.

Ако нямах и толкова крайно отношение към статистиката, щях да съжалявам, че над нея не залягах особено в техникума и след това.

Последното е защото задачата може да се сведе до разпределение. Което е обратното на статистиката. Малко вид дедукция. Нещо подобно на транспортните задачи или SCADA.

Добре то разпределението може и да не е нормално. Просто да е някакво. Схемата си я представям сумата и бройките да се разделят на две. Половината да се опитвам да ги съединя от по-малките цени, другата от по-големите, така леко по леко да свалям обхватите надолу, докато стигна до някакви крайни стойности.

Обаче така да речем при шестнадесет обхвата може да имам ст-ст да речем 1,43, която да не се покрива от обхвата, към който да е насочена, но да може от друг. Понеже на всяка врътка, ще цепя на две, то стойностите ще си остават константни (макар и намаляващи), а ще се променят ценовите обхвати, в които да влязат. Омотал съм се не като пиле, а оттатък.

Първия проблем е, че аз не съм програмист (направо никакъв не съм) и идея не ми идва, как да реализирам подобна логика. Писал съм само портали и графични програми. Ламерия. Със сериозни задачи искащи теоретично подковаване, никога не съм се занимавал.

Не знам, какво да направя и как да го направя. Единствено този bruteforce на Наката ми дава основание, че е постижимо. Единственото ми опасение е, че той ще вади твърде подобни резултати един на друг.

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


п.п. Ако харесвам нещо на ЕКАФП, то е, че могат да се ползват единствено като принтер, реалната работа да се върши на компютър. Но и това не е необходимо. Можеш да си вземеш фискален (демек данъчен) принтер за една трета от цената на цялото изделие. Да знам, че е обир, но когато имаш държавен монопол подобен на енергоизточниците и водата, то няма, как да не те одират. Поне успокоението ти е, че парите ти отиват в частни ръце, а не при хрантутниците.
« Последна редакция: Jul 20, 2018, 08:06 от go_fire »
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

remotexx

  • Напреднали
  • *****
  • Публикации: 3210
    • Профил
Re: Софтуер за изработване на комбинации
« Отговор #48 -: Jul 20, 2018, 16:32 »
, Гого, объркал си се нещо... може би и аз те подведох, малко, ама щото и аз се подведох по първоначалното описание.
За да имаме работещи вариации и комбинации (разликата е само че едното е без повторения и е N x (N-1)/2 а другото е с N! Факториел итерации)
И двете крайно непрактични при 2000 х 500 елемента да разпределиш
1. На теб ще ти трябва това с факториела, или иначе ще трябва да извъртат и от двете страни т.е. трябва да набедил не само парите ами и стоките от др страна
Дори и да приемем че успееш да извадиш стоките продадени по тези фактури...
2. Тези алгоритми работят с точно разпределяне което е невъзможно
Пример.
40 лв. Обща фактура и стоки за разпределение от 1х20, 1х19, 2х11
Няма точно съвпадение, най близо е 20+19 обаче реалната продажба е била
4 х 11 с 10% отстъпка или 1х20 и 2х11 пак с отстъпка
Никакъв алгоритъм не може да го разкрие това , информацията за отстъпките...само от касовия апарат, както каза колегата...

Така че, повтарям, за да знаеш в какво се набутваш, точно възстановяване на оригиналното разпределение в т(в)оя сл. Е невъзможно.
И още, ако приемем, че няма отстъпки и знаем точните бр. И артикули по кофти фактури, както казах итерации са немислими , факториела, защото не е сам за една а за всички,

Алгоритми
1. Вендинг машината, ще смята факториела
2. Stuff-it софтуера, който го помни навремето, за наблъскани макс файлове на СД/ДВД така че да остане 0 байта свободни.... Вероятно и той ще хвърли кърпата.. той зачезна нещо напоследък тоя софтуер, дисковете станаха големи, ама потърси некой с богата колекция порно и все ще извади някоя стара версия...
Проблемът на горните 2 е че работят добре но на ниво единична фактура, т.е. за да натамънят най точно текущата, могат да те доведат до задънена улица после,...

3. Единственото което ми идва наум, и за в реално време е SA , Simulated Annealing там вече може да питаш старите леяри и/ли програмисти, но

Пак повтарям, не се навирай там, това е само при условие че точното разпределение е възможно, от всичко изписано досега мисля че НЕ е,. Карай си както и колегите при тебе, Нагоденко и Нагласенко и... спиш спокойно

Извинявам се предварително за ръкописните грешки, от автокорекцията на тел. Е.
« Последна редакция: Jul 20, 2018, 16:36 от remotexx »
Активен

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 8780
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: Софтуер за изработване на комбинации
« Отговор #49 -: Jul 20, 2018, 18:28 »
, Гого, объркал си се нещо...

Точно този отговор ми съсипа деня.

„Надежда всяка тука оставете.“

В касовия апарат няма инф. за отстъпки. Само за момент ще си представя, че отстъпки просто няма. В касовия апарат, какво се записва? Код, брой, обща цена. Само това, друго няма. И после на края на месеца апарата просто сборува всички бройки и цени за всеки код. Толкова. Но срещу този код при мен седят примерно сто кода.

Метода на Ласков ми дава допълнително разбиване на една продажба. Но там продължава да няма отстъпки, надценки и т.н.

Аз не търся оригиналното разпределение. Това е невъзможно. Търся някакво разпределение, а ако е и що годе правдоподобно, още по-добре.

В общи линии твоя отговор ме обрича да си избода очите, нищо да не постигна и да продължавам да работя от вкъщи, за да наваксвам недостижимото. Ами, като бях толкова горд да си мисля, че мога да се състезавам с младите, хак да ми е.

Ако нямах борчове за оправяне, просто можех да се откажа. Сега няма де да мърдам и ще си нося кръста. Благодаря все пак, че опита да помогнеш.

Оказва се, че имало математика, която е недостижима дори за компютрите.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

Naka

  • Напреднали
  • *****
  • Публикации: 3395
    • Профил
Re: Софтуер за изработване на комбинации
« Отговор #50 -: Jul 20, 2018, 18:56 »
Гога вземи едни реални данни с много малко артикули например до 7-8 (или 4-5) и пробвай. То мисленето е до един момент ама след това трябва да се види как се държат цифрите и дали изобщо става нещо.

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

Аз например си мисля че при повече айтем-и брут форса ще  избълва много решения.
Сущо както при вендинг машината
Може да имаш отговор 20=10+10 а може да е 20=10+5+5 може дае 10+5+1+1+1+1+1 а може да е 20*1 или 5+5+5+5

От друга страна тея работи дето ги разправя
Ремо са много дълбоки води. Ако човек се задълбае в цялата теория дето е там, може и година да не му стигне.

Но само ти най добре знаеш какви ти са данните и какво трябва да постигнеш.




« Последна редакция: Jul 20, 2018, 19:13 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 8780
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: Софтуер за изработване на комбинации
« Отговор #51 -: Jul 20, 2018, 19:05 »
Туко що ходих до Википедия да се образовам, защото не разбрах нищо от отговора на Ремо. Не, че разбрах нещо от Википедия, но поне разбрах, че и в заглавието на темата съм в грешка. Аз съм си представял комбинацията като нещо лингвистично, а не математическо.

Математическата комбинация се оказа, че не е нещо, което ми върши работа. Тя отново е едномерна. Може да ми каже как шест числа могат да се комбинират из между 49.

На всичкото отгоре има вид, при който се връща обратно в купа. Това го няма в реалността. Една бройка не може да се продаде два пъти. Сиреч с комбинаторика може да се каже, колко пъти може да се продаде едно количество спрямо общо такова, но не може да се каже, как едно количество на обща стойност може да се разпредели между други количества с други стойности.

Че съм слаб по математика е едно, но може би трябваше да проверя преди да пиша заглавието на темата. Сега се чувствам още по-тъп.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 8780
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: Софтуер за изработване на комбинации
« Отговор #52 -: Jul 20, 2018, 19:08 »
Писали сме заедно с Наката.

Нака, това, което ми казва Ремо, е, че е невъзможно математически да се разцепят две стойности върху множество отделни стойности. Сиреч според математиката, какъвто и brute force да прилагаш, няма да изкараш не едно, нито едно решение няма да изкараш. И от това ми става още по-зле.

п.п. Иначе днес започнах да събирам стойности за единия месец. И ще ги нагаждам вкъщи тия дни. Но опасявам се, това е бавно, а моя случай е още по-бавно. Няма шанс да успея да направя сам нещо, което две млади, умни, бързи професионалистки са правили по месец. Шанса ми беше да използвам софтуер да свърши поне част от нещото. Оказа се, че такъв софтуер не може да съществува дори теоретично.
« Последна редакция: Jul 20, 2018, 19:11 от go_fire »
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

Naka

  • Напреднали
  • *****
  • Публикации: 3395
    • Профил
Re: Софтуер за изработване на комбинации
« Отговор #53 -: Jul 20, 2018, 19:25 »
 Това не го разбрах за двете стойности.
Гога в грешка си нещо и си прегрял.
Щом може да се направи на ръка значи може да се направи и на компютър по същият начин.

Чакай малко че нещо пак не разбрах. Ти не комбинираш стойности, нито разцепваш стойнисти на две - в това дето ти предложих. Ти комбинираш количества (цели числа) и гледаш (между другото) да ли ще се пасне стойността. Къде е грешката в това и защо не става?
« Последна редакция: Jul 20, 2018, 19:39 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 8780
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: Софтуер за изработване на комбинации
« Отговор #54 -: Jul 20, 2018, 19:42 »
Май вярно съм прегрял. Няма как да е невъзможно. Всъщност по този начин сваляме до едномерно пространство и става възможна задача. Май трябва да преспя и утре просто да пробвам.
Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

remotexx

  • Напреднали
  • *****
  • Публикации: 3210
    • Профил
Re: Софтуер за изработване на комбинации
« Отговор #55 -: Jul 20, 2018, 19:51 »
Отново... да дам своята лепта - последните си 5 ст.  ::)

Аз пак да потретя - без Нагоденко и Нагласенко няма как да мине
всички изброени алгоритми искат/търсят точно напасване - бр./цена към сума по фактура, но
има едно големо НО имало е отстъпки и надценки които са загубени завинаги - аз затова пред(по)ложих ..ако може да се извадят от касовия апарат тогава вече може да се търси точно напасване... (с истински монети винаги работи, но там винаги има 1 ст.)
т.е. ние даже  масива Coins не знаем с какви 'монетки' да го запълним - анадънмо
Ако го зпаълним със складови цени (т.е. преди отстъпките/надценките) повечето фактури няма да матчнат нищо вж. примера който дадох по-горе с 40 лв което напр. не мачва нищо като складова цена защото е било продадено напр. 4 х 11 лв. (10) с 10 % отстъпка или 20 + 2 х 11 лв (10) с 10% отстъпка.
Каквито и комбинации, вариации пр. да правиш само с монети от 11 ст./лв. няма как да докараш цена от 40 (а то такива ситуации ще има)

т.е. без реалните 'монетки' нищо няма да се напасне - без Н&Н

П.П. Единствентоо което мога да предложа като по-лесно е да се модифицира лекинко кода на ВМ (вместо == 0, да стане близо до 0-та) и да пуска, то ще му ги вади +/- 5 ст. (или там колкот си го нагласи) и ще им праска 5ст. надценка/отстъпка и ..те така...

По-правилния начин е, ако се знаят артикулите по тия фактури (няма как да се мине без инвентаризация), да се ползва SA алгоритъма, застопоряваш фактурите (в някакъв ред - да кажем най-скъпа, към най-евтина) и пробваш пермутации на цените само - алгоритъма за разлика от дугия който е брут форс, може да се спре по всяко време и да се принтира най-доброто решение (за момента) - като оптимизацията е върху всички фактури/цени едновременно т.е. всичките по-горни алгоритми работят 1 по 1 фактурите и не вземат предвид че натамънявайки баш тази, може да се прецакат в последствие - напр.
фактури: 11+7+4 = 22 = 11 + 7 + 4 (най-простото по един артикул)
(това е оригиналното разпредление, което не го знаем а се опитваме да отгатнем)
артикули/цена: 11 х 1, 7х1, 4х1
и алгортъма ако прецени да мачне напр. така първата и.. другите ще се прецакат
11 = 7х1 + 4х1
7 = ?? (от 11 на цяло)
4 = ?? (от 11 на цяло)
имайте предвид че горния пример е много опростен, но има и наличности т.е не можеш да продаваш повече отколкото имаш налично в склада, и точно те са тясното място, за прецакване... за пълнота представете си че в примера още имаме и налични 100 бр. по 5.50 - могат да развалят 11 на цяло на 2х5.5 и цялостното разпределение пак е прецакано, щото имало само 1 х 7 налично, ама то отишло за нещо друго.

така че, щеш не щеш, трябва да се търси (най-добро) напасване на всички фактури едновременно. SA ще свърши работа - 1) ще оптимизира на цяло - всичките наведнъж; 2) може да се прекъсне по всяко време а не да се чака да извърти N! факториел варианти - е, може и никога да не достигне оптималното решение (ама то както вече видяхме е невъзможно без истинските монети, след намаления и надценки от касовия апарат), но ще даде достатъчно добро приблиежение така че накрая с мин, Н&Н да се оправи човек и на ръка, тук бонбонче, там пиронче, де малко аванта де малко надценка да ги докара
- пълно възстановяване на оригиналнот състояние е невъзможно (не и без оригиналните 'монетки' където 'монета' е ед. крайна цена на артикул т.е. след намаление/надценка и т.п. т.е. ще има монети 3.50, 2.11 и т.н., а 1 ст. може и да няма въобще, ако има - да изписва всичко по 1ст N пъти, ама ще изглежда подозрително.

Толкоз от гл.т. на математиката.

П.П. Гого, не искам да те отказвам ама... СА не е от най-лесните алгоритми, по-скоро модни Вендинга или ползвай на колегата алгоритъма и накрая с малко Н&Н...
..подозирам че колегите ти (от ръчен труд и творчество) със МНОГО Н&Н са работили, а... традициите трябва да се поддържат

П.П.П. А каква е целта на цялото това занятие - аз така и не разбрах, за шефа ли (парите са се толкоз), за данъчни нещо... т.е. сумите (ама те си отговарят), за склада(джийката) нещо - ама там тъй като пак опираме до ЯКО Н&Н там па въобще няма да отговарят артикулите (дори и да го нагласиш някак си), та въпросът е открит - ЗАЩО? Наличностите в склада все няма да отговарят...

Признавам си без бой - убягват ми ненаучно базираните алгоритми  :o а тука вече яко навлязохме в сферата на ненаучната фантастика...
« Последна редакция: Jul 20, 2018, 20:47 от remotexx »
Активен

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 8780
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: Софтуер за изработване на комбинации
« Отговор #56 -: Jul 20, 2018, 22:50 »
Отстъпки, та отстъпки. Това са продажби на дребно и в брой. Много са малко клиентите, които не плащат по банка и получават отстъпка. И тази отстъпка винаги е 5 или 10 %. Ама това са наистина малко клиенти и могат да бъдат изброени поименно. На фона на стотиците други продажби, това е в рамките на статистическата грешка, дето се казва. Затова не ме притесняват.

Притеснява ме, че не мога да свърша тази работа бързо. Всичко на всичко в месеца имам около две седмици, които мога да разпределя за „странична работа“. По принцип вярвах, че мога да вместя това в едната.

=*=

Какъв е смисъла на упражнението? Смисъла е имитация на дейност. Икономическата отчетност е стара наука. А икономическата свобода е нещо ново. В световен план е под 50 год., а у нас малко над 20.

Когато учените глави са измисляли теорията, не е било възможно да почнеш реален бизнес с 200 лв. (законотвореца даже те лъже, че и с два е възможно, но това е измама). Освен това разнообразие не е съществувало. Разнообразието е рожба на свободния пазар. И най-добре заредения магазин не е имал повече от 100 вида стоки цифром и словом. И най-голямата фабрика не е произвеждала повече от пет артикула. И това е било буквално до 70-те години на миналия век. Японците променят всичко.

Днес в най-мизерното „левче“ има поне 5 000 различни артикула. Най-малкия, селски цех има над 100 модела продукция. Днес е невъзможно да се управлява складово стопанство без компютър. Казва го човек, на който кварталната му бакалия на десет метра от дома  му, с размерите на гараж, има и компютър и четец на баркодове. От там не излиза и един хляб, ако „не е чукнат“.

Обаче дори в днешните времена съществуват хора, които някак си вярват, че могат да въртят бизнес носещ им десетки хиляди лева годишна печалба, без да ползват чудесата на техниката. Против всякаква логика, даже успяват. Е такива хора обикновено са спонсорирани от труда на работниците им, но това е проблем на работниците им. А и техен не е, защото доброволно са се съгласили.

И тук идва моята роля. Тези клиенти са всички наши клиенти. Ние живеем, заради тях. Те не искат да водят нормална отчетност, ние сме техния посредник към щенията на държавата. А тя държавата и не иска много от тях. Тези хора не участват в схеми с ДДС. Обратното. Всеки месец спонсорират бюджета с прилични суми. Те плащат заплати. Плащат осигуровки. Редовно.

Държавата просто няма, за какво да ги търси. Техния бизнес е чист и законен.

Няма, за какво да ги търси, но все така си има безброй изисквания към тях. Както казах, някой трябва да поддържа илюзията, че има истинска отчетност. Тоя някой са канторите.

Едно от тези стотици изисквания е да декларират печалбата си. Човек може да не и чувал думата „икономика“, но знае, какво е печалба. Това е разликата между това, което е влязло и излязло от джоба ти. Ако в джоба ти все още има пари, значи не си на загуба.

Добре, как можеш да докажеш разходи? Разходи има всякакви и много. Може да имаш задължения към банки. Може да плащаш заплати. Може други неща. Срещу всичко това стои документ.

Но има едни документи, които доказват разходи за режийни (ток, вода, телефон), разходи за материали, разходи за производство, разходи за стока. Обикновено това се доказва с фактури, приемо-предавателни протоколи, касови бележки и други платежни документи (документи върху които има две страни и упоменати пари).

Част от нашите клиенти не произвеждат нищо, не предоставят услуги, а
 се занимават с чисто търговска дейност. Този случай е такъв. При производството и услугите е същото, но стъпките са повече.

Добре, той може да докаже разходи. Но, как ще покаже приходи? По същия начин, както и разходите. С платежни документи (две страни, пари) издадени от него.

Имаме разход. Имаме приход. Да формираме печалба или загуба. Как?

Вадим от едното другото. Нали? Почти.

Трябва да свържем прихода и разхода. Кой приход, към кой разход се съотнася. Аз това, което ти продавам може да съм го купил миналата година. Не съм направил сега разхода. Не мога да го съотнеса към текущите разходи. Трябва да е към точния.

Ето това е смисъла на упражнението. ЕДНА ОПЕРАЦИЯ. Каква част от разхода да бъде извадена от прихода в края на отчетния месец. Оставащия приход в края на отчетната година ще формира печалба. Върху тази печалба ще се дължи данък.

Трябва да мога да докажа с документи, защо точно толкова е тази една, единствена операция, а не нещо друго.

Иначе и без да се полага целия гигантски труд, може много лесно и бързо да се каже, каква е тази стойност. Ако знаеш например, че някой работи с 20% надценка, то със сигурност разхода, който трябва да извадиш от прихода е с 20% по-малък от него. Само дето не можеш да го докажеш. А държавата си има изисквания. Когато са правени държавите, свободен пазар не е имало. И всъщност докато има държави, истински свободен пазар няма да има.

От последното съм лично облагодетелстван. Ако нямаше държава, то и аз нямаше да имам хляб. Частниците ни дават подаяния, за да ги пазим от държавата.

Активен

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

remotexx

  • Напреднали
  • *****
  • Публикации: 3210
    • Профил
Re: Софтуер за изработване на комбинации
« Отговор #57 -: Jul 20, 2018, 23:41 »
Я пак... аз пак не разбрах, защо трябва чак толкоз да издребнявате и да го разбивате по пера/артикули... ами нали си има там общата фактура с общата цена - те това му е разхода

отделно че сега се сетих и един неописан пример - ами ако си продал последния си артикул по такава 'обща' фактура, хубаво после ще вземеш тек. наличност в склада и ще насосаш нещо си и по нея фактура ама онова нещо вече го нямаш в наличност т.е. ще им зачукащ съвсем друго нещо/неща само и само да докараш същата сума?!?

Аз очаквах че бюрокрацията ще ги иска тия неща агрегирани (т.е. само сумите) а клиента ще има само разбивките, а ти сега казваш че е точно обратното - клиента има само общата сума а те му искат разбивка?!? Оруел...
..ама що ли не се учудвам - то в тая държава всичко е наобратно  ::)


П.П. за съжаление на БГ е много кратък превода на 'Симулирано закаляване' - както казах търси стари леяри/програмисти (с бради, без бради - каквито намериш)
https://bg.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BC%D1%83%D0%BB%D0%B8%D1%80%D0%B0%D0%BD%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%BB%D1%8F%D0%B2%D0%B0%D0%BD%D0%B5

Я имало и литература на БГ (не знам кой от двата ще се отвори при тебе)
http://download.pomagalo.com/1023920/temi+po+metaevristika/?search=5
http://search.pomagalo.com/?keywords=%C3%E5%ED%E5%F2%E8%F7%ED%EE%20%F1%E8%EC%F3%EB%E8%F0%E0%ED%EE%20%E7%E0%EA%E0%EB%FF%E2%E0%ED%E5&s=1

другия вариант е да си купиш квантов компютър
https://money.bg/inovations/google-e-na-krachka-ot-neveroyaten-probiv-v-tehnologichnata-sfera.html

инак най-добре е обяснено на английски, с картинки, че даже и списък с алтернативни методи имат - и там който си харесаш, ама подозирам при теб избора ще е по-скоро м/у ненаучен/Н&Н/ и/ли научен метод  ???
https://en.wikipedia.org/wiki/Simulated_annealing#Related_methods

това е научният подход, инак алтерантивата я знаеш Н&Н - На...енко
« Последна редакция: Jul 20, 2018, 23:58 от remotexx »
Активен

ddantgwyn

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 1262
    • Профил
Re: Софтуер за изработване на комбинации
« Отговор #58 -: Jul 21, 2018, 00:08 »
Май вярно съм прегрял. Няма как да е невъзможно. Всъщност по този начин сваляме до едномерно пространство и става възможна задача. Май трябва да преспя и утре просто да пробвам.

Аз може да съм прост инженер и затова да не разбирам защо не обръщаш внимание на идеята за разделяне на големия проблем на два по-малки и отделното им решаване:

1. Имаш крайно множество от цени;
2. Имаш крайно множество от артикули (с цени от първото множество);
3. Имаш една крайна сума.
———
1. Намираш някаква комбинация¹ от цени, която да удовлетворява условието сумата от цените от тази комбинация да съвпада с крайната сума;
2. След това търсиш да намериш съответните артикули от множеството на артикулите, които да имат цени, попаднали в горната комбинация;
3. Генерираш отчета (фиктивен явно) за продажбите за съответния месец.
———
Има какво да се оптимизира, но за това по-нататък.
 
Сега по-ясна ли става идеята или пак нищо не съм обяснил?

———
¹ комбинация не е най-точният термин в случая, но засега ще го оставим така.
Активен

the lamer's team honourable member

remotexx

  • Напреднали
  • *****
  • Публикации: 3210
    • Профил
Re: Софтуер за изработване на комбинации
« Отговор #59 -: Jul 21, 2018, 03:09 »
Да де и аз това казвам, да не се хвърля направо у дълбоките води, ами да прецапа по плиткото.

..за съжаление не можах да изровя софтуерчето от преди време ама.. то и без тва за Усхадуя само (ма с ГУИ) ама изрових едно по-свободно (ма без ГУИ)

http://gaffitter.sourceforge.net/
https://sourceforge.net/p/gaffitter/wiki/Home/
http://nixbit.com/software/genetic-algorithm-file-fitter-review/

Edit: сега видях че той тоя тул има и опция да не правиш файловете ами да му ги подадеш от командния ред или да ги чете то файл (името на файла, както и размера му) - това вече може на пърл да го генерираш - да изгенерира неколко стотин командни реда дето ще ти натамънят складовете. Имай предвид че може да работят дълго - виж там за SIGHUP или др. стандартен начин за ранно терминирате с принтиране на най-доброто постижение до момента

Значи Гога - правиш 1 (или няколко) папки и вътре си фърляш по 100-тина файла (това ще са ти артикули и наличност в т.нар. склад) - най-добре да дам пример

Ако имаш артикули
Кис.Млеко 1.50
Хлеб бял 2.35
Хлеб чер 1.15
...
правиш 100 файл от всеки вид
кмлеко001 150 байта
кмлеко002 150 байта
кмлеко003 150 байта
...
кмлеко100 150 байта
леббел001 235 байта
...
леббел100 235 байта
лебчер001 115 байта
...
лебчер100 115 байта
 и фактура за 15 лв.
и пускаш програмчето да смести макс бр. от горните файлове във диск а размер 1500 байта
само гледай да не продадеш повече млекца отколкото имаш налични

е ся... верно резултата няма да е
10 х кмлеко001 (х1.50) = 15 лв.
ами ще е 10 реда
кмлеко001
кмлеко002
...
кмлеко010

ама само трябва да конвертираш
ама схващаш идеята...

сега... в повечето случаи ще намира нещо много близо ама отдолу напр. 14.98 или 14.99 вместо 15 и понеже предполагам ще предпочиташ да слагаш отстъпки отколкото надценки то тогава го пусни втори път ама с таргет 15.05 лв. и тогава ще го докара до 15 и малко отгоре, там ще си изпишеш вече отстъпката да го направиш точно 15

Схващаш идеята - ама аз те тоя ненаучен подход още в първото си изказване по темата го споменах ама ти си го пропуснал (е верно StuffIt вече е запазена марка на Апъл за друго приложение - архиватор, и вече трудно се намира баш такъвия софтуер - и вече не е със SA ами с генетичен алгоритъм - ама той пък един от заместителите на SA ако си прочел чак докрая и там секцията с препратките.. та предполагам че ще има опция за абнормално прекратяване ако се замисли много дълго време)

Сега - ако искаш с ГУИ - потърси приятел (с богата колекция пор..о т.е. картинки от ерата на флопи дисковете) със сигурност ще има таквизи софтуери

П.П. Честито на дебиянци - https://packages.debian.org/stable/utils/gaffitter
ама кой знае колко е старо, за по-добри резултати сваляй от сайта  :P

и нека забавлението започне сега!
https://xkcd.com/287/

..жалко най-близкото (до теб) което извадих е на смоко
https://stackoverflow.com/questions/3624580/finding-the-optimum-file-size-combination#
https://web.archive.org/web/20120407040035/http://zeta-puppis.com/2010/02/22/simulated-annealing/

че иначе опраш до брут форсе на ... combinatorial NP-hard проблем който е и NP-complete на всичко отгоре
https://en.wikipedia.org/wiki/Bin_packing_problem

П.П.П. Най накрая - Ура ..имало и за Пърл, ама ако не ти се учи/пише карай си с програмчето (с ГУИ или без се тая)
https://metacpan.org/pod/release/MSCHILLI/Algorithm-Bucketizer-0.12/Bucketizer.pm
« Последна редакция: Jul 21, 2018, 17:09 от remotexx »
Активен