2021.10.25 10:11 BazaarMonk ARCHITECTURAL APPARITION // 2016 / Graphite / Mike Tremblay / when I was a child I was obsessed with designing buildings, so much so, that I believed I would be an architect in adulthood, well that didn't work out and I couldn't be happier / have a great week everybody
|submitted by BazaarMonk to electricbrainstem [link] [comments]|
2021.10.25 10:11 licking-windows In the days when long-distance telephone calls were expensive and often very low quality, three-inch or smaller reels of triple-play or even thinner tape were used for sending long recorded messages by post
|submitted by licking-windows to bizzarewikipedia [link] [comments]|
2021.10.25 10:11 StonksPeasant Reliable sellers
I have been searching for a reliable place to buy an asic miner but everything seems so sketchy that I'm hesitant to buy from anywhere. I have seen people recommend Musk Miners, East coast miners, and coin mining central but how do I know these are legitimate and not going to run off with my money?
submitted by StonksPeasant to BitcoinMining [link] [comments]
2021.10.25 10:11 Thefelix01 NEAR Protocol Offers $800M in Grants in Bid for DeFi Mindshare
|submitted by Thefelix01 to CryptoCurrency [link] [comments]|
2021.10.25 10:11 Public_Mess_7143 Men who have been caught cheating and subsequently dumped and blocked, did you regret it?
Did your SO blocking you and removing you from their life affect you? Did you think about what you’d done? Or did you just literally move onto the next one?
submitted by Public_Mess_7143 to AskMenAdvice [link] [comments]
2021.10.25 10:11 alexrose00 QC on VSF OMEGA SEAMASTER 300m grey please
first purchase here , could you guys check QC on this watch please ? cheers
2021.10.25 10:11 neutrallemongoats Just came back from the vet.
So, I went there for a parasite diagnosis and it turns out that my female bird is just broody and also is carrying an egg. They gave me some sort of powder mix and told me to mix some of it with boiled eggs. So, I did that and added some pear pieces to make it more appetising. They also told me to buy a nest box, but I'll get that tomorrow. They are still a bit shaky from the visit. Is there anything I can do to prevent the male from trying to breed with her when I get the nest box?
submitted by neutrallemongoats to budgies [link] [comments]
2021.10.25 10:11 InvestMinute24 Opawica Increases Land Position at Little d'Espoir Lake Property Exploits Subzone, NL
|submitted by InvestMinute24 to SmallCap_MiningStocks [link] [comments]|
2021.10.25 10:11 Freyjn Algorithm to optimize the population of a skyscraper layout on Anno 1800
| This (really!!!) long post aims at explaining how the program I wrote works at optimizing the population of a given layout using the new Highlife DLC. The post will be divided in two parts: a “Program in a nutshell” section for people who are not interested in how the program works and only want to use it, and an “Advanced program understanding” section for those who want to understand deeply how the program works and how it performs. And sorry for the English writing, it’s not my mother tongue.|
This program is written in Python so if you want to use it you need to have Python download. If you don’t have it, you can find everything on the internet but remember you need three things: Python itself, an interpreter like Pyzo and a package library like Conda or MiniConda. You can find everything explained on the internet.
You will also need the Anno Designer software, which can also be easily found on the Anno 1800 Wiki website. It is an amazing tool that allows you to design layouts for every Anno game, and in our case for Anno 1800.
Program in a nutshell
Here are the steps you have to follow to use the program:
What principles does the program rely on?
I consider here that you know how all of this works in game, if you don’t just check the in game help by clicking the question mark on the upper left corner of a skyscraper interface.
The only other skyscraper population optimization program I found was a brute force algorithm. Its idea is quite simple: every skyscraper can have a tier between 1 and 5. Given a layout, the algorithm generates every possible combination of tiers and computes its global population. The strength of this brute force algorithm is that it yields an exact solution: the population it returns actually is the highest you can get for the given layout. But its main drawback is the computing time: as each skyscraper can have 5 tier values, using a layout with n houses makes the algorithm generate 5n combinations. To help you understand how huge it is, for 30 houses this represents approximately 1021 combinations! And 30 houses is really small in an Anno 1800 game. So obviously this kind of algorithm cannot be used to optimize a 100+ houses layout.
In order to build my own program, I used a randomized approach. The idea is the following: a skyscraper is randomly selected in the layout and its tier is varied between 1 and 5. For each tier the global population is computed. The tier of the selected skyscraper is replaced with the value that yields the highest global population, and the process is then repeated again. The number of time this tier changing process is done is called nbr_iter. But doing this optimization only once will probably give a result quite far from the optimized value. In order to have a better approximation, the whole process is repeated nbr_try times.
A little bit of maths
What are the maths hidden behind these algorithms? The problem we want to solve is the following: what is the combination of tiers that give the highest population for a given layout? If we call n the number of houses considered, there are n independent parameters (t1, t2, …, tn) where ti represent the tier of skyscraper i. The population and the panorama score of a skyscraper that you see in game have mathematical expressions that will be helpful for The population pi of skyscraper i is given by: pi = 50 + 25*ti + 25*p(ti) with p(ti) the panorama score of the skyscraper i. The panorama score can be expressed as follows: p(ti) = ti + somme(aj)(for j with dij≤r(ti)) where aj=1 if 0
Figure 1 shows a very simple example of finding such a maximum with a one-dimension model. The two algorithm strategies are also imaged in Figure 1. The brute force algorithm calculates every value, compares them and finds the maximum. The randomized approach only computes few values and then optimizes the result starting from these values. It is here quite easy to understand the strength and drawback of each algorithm: the brute force solution computes way more values but gives the exact solution (which is 21), the randomized solution computes few values but only gives an approximation (which is 14) of the actual solution. The brute force is to be preferred on small parameter numbers or on functions that have sharp and rapid variations. In our case, the global population does not vary sharply as a function of one ti because we consider a lot of them in a single layout, but we will have to pay close attention the the choice of nbr_iter and nbr_try parameters.
Figure 1 Values that will be computed by a brute force algorithm and a randomized algorithm (nbr_iter=4,nbr_try=4) to find the maximum of an example function.
What about the program?
Fellow programmers, this will be your favorite part: how is my algorithm working? Before I start explaining it, note that there are lots of commentaries in the .py file itself. Now let’s start!
The first thing to do is to generate the layout in a way Python can understand it. As Anno world is basically a grid, the natural way is to use a matrix. Houses are just a 3x3 square in this matrix. But all the tiles are not equal: the center is to be distinguished from the other squares because the range of a building is determined from its center. Moreover, to know if another building is in range, the distance is calculated between their centers. Finally, each skyscraper has two data to store: the tier and the panorama score of the skyscraper. So I decided that the center tile would store the tier and the eight surrounding tiles would store the panoramic score. To differentiate the center from the edges from the other tiles I used that following syntax: the center tile will be written as 100+ti, the eight surrounding tiles will be written as 200+p(ti) and all the other tiles will be written as 0.
Now that I know how I want to represent the houses, I have to create all this. First I need to know what are the houses positions. Quite naturally, I decided that Anno Designer would be used to design the layout, so I had to find a way to extract the positions of the houses from an Anno Designer output file. This is done with the extraction_position function: its role is to go through the layout.txt file and spot when the world Old_World_Residence is written. This is a keyword to say that Anno Designer detected an object you placed in the layout that is a house (and this is why this is the only type of residence you MUST use when designing your layout). Then it spots when the positions are written and save them in a list. Note that Anno Designer saves the coordinates of the upper left tile of buildings, this information will be important for the following. Now that I have the list of the houses positions, I can determine the dimensions of the world matrix. That’s basically finding the difference between minimum and maximum for both coordinates x and y, and that’s what size_matrix function does. I also decided to add three belts of 0 all around my layout to avoid any problems with edges of the matrix. I then create a matrix full of 0 of dimensions max-min+9 in each dimension. I go through my world matrix and add houses using the extract_position result. This is what world_generation function does: the initial tier is fixed at a random number between 1 and 6, and the panorama score is computed using the score_panorama function.
Finding the best tier of a random house
And I have my world matrix, now I can get to business! I generate random coordinates and check if there is a center tile in the eight surrounding tiles using the coord_centre function. If I don’t find a center, then the tile is a road so I don’t have to compute anything, it just saves computing time. When the center of the house is found, I test every possible tier between 0 and 5. To determine the impact of the tier change on the population, I need to determine which houses are affected by this change and which buildings are used to compute the population of the changed building: functions coord_influenced and coord_influencing respectively do that. It’s just a check of distance between house centers. To limit the computing time, I only looked at houses that were in a square of size 2*6.75 which is the maximum diameter of influence for a skyscraper.
Once these buildings are determined, I just compute the difference of population induced by the tier change. I compute the new panoramic scores for each skyscraper and store it in the lower right corner tile of the building. I can then compute the population change using the old and new panoramic scores and tiers. I then store in a list the tier of the randomly selected building, its new panorama score and the list of every impacted building center coordinates and new panorama score, as well as the global population change.
The next stage is the research of the maximum population change in the previous list and modification of the randomly selected building tier and panorama score, and panorama scores of impacted buildings with the replace_panorama function. And there we are! This process is done nbr_iter times. To finish the computing part, the whole process can be repeated nbr_try times to increase the chances to find the best approximation of the actual best global population.
To generate the output file, I use the position_from_matrix function to extract from the world matrix the position of the houses centers. I then modify the layout.txt file to write down all the necessary information I need to visualize the optimized layout on Anno Designer. Here I impose the color of the house depending on its tier: cyan for tier 5, magenta for tier 4, yellow for tier 3, blue for tier 2, green for tier 1 and red for tier 0.
I did several tests to see how the program was performing and if it could really be used to optimize 100+ houses layouts. The test layout was composed of 30 houses organized in 3 parallel blocks of 5x2 houses. A picture of this layout is given in Figure 2.
Figure 2 Shape of the layout used in the tests (here for 30 houses)
The first thing I did was to test how nbr_iter was impacting the minimum and maximum population computed for a given layout at fixed nbr_try and the mean computing time for a run(nbr_iter). The results are given in Figure 3. The function ran was optimization(nbr_iter,100) 15 times for each nbr_iter to have a statistic overview.
Figure 3 Evolution of minimum, maximum and mean population, and computing time (s) as a function of nbr_iter for a 30 houses layout; nbr_try=100.
We can first observe that the minimum, maximum and mean population grows exponentially with nbr_iter. This is quite logical because a higher nbr_iterr means a higher a better optimization. What is more interesting is how the results are spread over the 15 tests for the same nbr_iter value. We can see that at nbr_iter=10, the max population reached is the same for all the tries. This is what could be called the “growing phase”: the number of houses randomly selected is much smaller that the global number of houses so there are only few interactions between buildings. Therefore, all the samples grox in a similar manner. For nbr_tier ranging from 15 to 40, both minimum, maximum and mean population are the most spread from all the nbr_iter ran. This is what could ba called the “differentiation phase”: as more and more houses are randomly selected, the first interactions between houses are taking place and the general shape of the layout is defined. Then for nbr_iter>50, we can see that minimum, maximum and mean population are less spread and converge. This is what could be called the “optimization phase”: once the general shape of the layout is defined, it is optimized by selecting multiple times all the houses in average. The actual best population for the layout is the converging value of the three computed populations. One can easily understand that we will be interested in high nbr_iter values to achieve the highest possible population. But we can also notice that the results obtained for nbr_iter=60 and nbr_iter=100 are not significantly different (to be precise, they are 1.3% different in mean maximum population). It appears that using nbr_iter=2*number of houses in the layout is enough to get a good approximation of the solution.
The second observation we can make is that the mean computing time for a run(nbr_iter) grows almost linearly with nbr_iter. To be precise, the mean computing time evolves linearly with nbr_iter for nbr_iter<50, then the mean computing time tends to increase quicker with nbr_iter. This can be explained by the number and nature of interactions the algorithm computes: as nbr_iter grow, the number of high tier buildings increase, so the number of buildings influenced by a random tier change is higher so the computing times increases more. Anyway, we will be looking to minimize nbr_iter to save as much computing time as possible for big layouts optimization.
These two observations lead us to an optimization problem once again: nbr_iter should be as high as possible to have the highest population but should not be too high to avoid huge computing times. I personally distinct two different cases:
To understand how the number of houses was influencing the program performances, I did several tests using the optimization(60,100) function 15 times for each number of houses, which ranges from 15 to 40. The layout used is the same as the previous one where rows of 5 or blocks of 10 were added or discarded. The results are given in Figure 4.
Figure 4 Evolution of minimum, maximum and mean population, and computing time (s) as a function of the number of houses in the layout to optimize; nbr_iter=60, nbr_try=100.
We can first observe that both minimum, maximum and mean populations evolve linearly with the number of houses. This result is interesting because if it can be extrapolated (which requires more data that I don’t have yet), one could have an idea of the maximum population of his layout using only its number of houses. This could be of huge interest to know if the result of your own optimization run is satisfying or not and therefore take a decision on the parameters evolution to apply. For now, I can tell you the linear regression yields: Max=225*nbr_house+385. This formula is to be applied with great caution knowing the hypothesis that lies behind.
The second observation we can make is that the mean computing time is roughly constant around 0.7s per run(60). This indicates that the mean computing time only depends on nbr_iter and nbr_try, which makes the optimization of huge layouts possible, but this result is to be confirmed with data for 100+ houses layouts.
Nbr_iter\nbr_try kept constant*
The last question I asked to myself is what is the most important parameter between nbr_iter and nbr_try? Is the highest population for a given layout given by the highest nbr_iter or by a smaller nbr_iter with a higher nr_try? Is the random part of the process having a really high impact on the result or not? I used the initial layout from Figure 2 and chose a constant nbr_iter*nbr_try of 6000. I then varied nbr_iter from 20 to 120. The results are given in Figure 5.
Figure 5 Evolution of minimum, maximum and mean population, and global computing time (s) as a function of nbr_iter at fixed nbr_iter*nbr_try=6000 for a 30 houses layout.
We can first observe that minimum, maximum and mean populations increase as a function of nbr_iter. This means that nbr_iter is more important than nbr_try when optimizing the layout. This result has to be confirmed for bigger layouts though. The computed populations are also less spread, which can be explained by the fact that a higher nbr_iter means a better optimization and less divergence between the results. The second thing we can observe is that the computing time is constant. Here, we are considering the global computing time of an optimization(nbr_iter,nbr_try) run.
As a conclusion, we can say that using high nbr_iter numbers should be preferred to using high nbr_try numbers, especially because the computing time is constant at constant nbr_iter*nbr_try. Once again, these results shall be verified for bigger layouts and broader nbr_iter and nbr_try values.
To give you an example of this algorithm overall performances, I designed a layout that I am currently using in one of my Anno 1800 games. It is composed of 114 houses and has an empty space in the middle to place a town hall. All houses are in range of the town hall. Figure 6 shows the optimized pattern using optimization(350,2500). It took my basic laptop around 1h30 to compute it while doing other stuff at the same time. The global population achieve is 26450. This solution shows two interesting results:
Figure 6 Output 114 houses layout; nbr_iter=350, nbr_try=2500.
Wow, you read everything! Let’s have a quick recap about what we learnt:
- This algorithm relies on a randomized approach: given the houses positions, a random tier pattern is generated and optimized by testing all tiers for a randomly selected skyscraper. As it is a randomized approach, the highest population given is only an approximation of the actual one but the computing time is affordable.
- You should not use nbr_iter<2*number of houses in the layout. You should use a high nbr_iter rather than a high nbr_try.
- Be critical with the result, and try to see if there are easy houses that can be tiered up.
I hope all this bla-bla helped you to understand further this algorithm and how it works. As I could not do any tests in game to compare with the solution computed and as we still need more data to understand the algorithm behavior for various layout sizes, please give feedback on your results and how the program is performing. I only ask you to mention this post if you put on Reddit or anywhere else the result of an optimization using this program so that people have all the information in here. I also know that some optimizations in the program itself can be made to help save computing time so I will update the program version whenever I can. If you have any question, feel free to ask!
submitted by Freyjn to anno1800 [link] [comments]
2021.10.25 10:11 InHardWorkWeTrust Proper form = inevitable gains?
2021.10.25 10:11 _K_______ Mith fanart (neumím kreslit nos) :D
|submitted by _K_______ to Kerddit [link] [comments]|
2021.10.25 10:11 River_Grass Cursed_super idol
|submitted by River_Grass to cursedcomments [link] [comments]|
2021.10.25 10:11 GroundbreakingAd317 Safe to buy hold for a day or two days online?
2021.10.25 10:11 DataPirates Hire me [Academic Consultancy S'ervices]: Essay, term paper, and assignment help, Proofreading, and Editing Email: firstname.lastname@example.org WhatsApp +1(607) 594-3751 Discord: Data Pirates#3106
· I am experienced freelance writer who can write about any topic and engage with quality and well researched content.
· Former subjects I have written about: Nursing, Psychology, Business studies, History, Sociology, Marketing, English, and Ethics studies among others.
Availability: As needed
Cost: $15 per page (300 words)
Academic Qualifications: B.A. English and MBA
As a tutor, I have:
· Worked as a grader for high schools and SAT essay portion
· Extensive social science research experience and substantial writing experience.
· Access to top academic journals, as well as book chapters, books, magazine articles, and other works.
· Helped students improve their grades with delivery of quality academic papers in a range of subjects.
SKILLS: Academic and article writing, MS Word, MS PowerPoint, Editing, proofreading, research, and formatting.
I enjoy thinking through learning and look forward to hearing from you and working with you!
EMAIL: email@example.com WhatsApp +1(607) 594-3751 Discord: Data Pirates#3106
submitted by DataPirates to EssaysHelper [link] [comments]
2021.10.25 10:11 Thinking_in_Circles データ偽装をしたTOYO TIREの免震ゴムを使用した為、解体が決まった超高層賃貸マンションの譲渡先は責任を取る形でTOYO TIREに
|submitted by Thinking_in_Circles to newsokunomoral [link] [comments]|
2021.10.25 10:11 samotest VWCE prvic cez 100ko
|submitted by samotest to SlovenijaFIRE [link] [comments]|
2021.10.25 10:11 GermaineLemke 🌱Plant Token🌱 Crypto Freelance Platform Just Launch. Think Fiverr, But For Crypto🏪 Liquidity Locked 1yr🔒 🎲 Weekly Lottery 🎲 Doxxed Dev✅ Do work, Get paid in crypto☀️
At Plant Token we are striving to create the next-era of freelancing. With eco-friendly practices, fast crypto payments, improved business productivity, and transparent communication.
We have aimed to make a defi token with automated rewards and a real use case for longterm holders. We have developed a freelance marketplace for the cypro community. This platform allows new token projects and businesses to find freelance services and digital products. Both freelancers and employers will be able to pay, and get paid in crypto. We want to help increase the productivity of your business and the certainty of the deal. We will start by building a strong community and marketplace that proves it’s here to to stay.
Projects being built on the foundation of community are the strongest in the crypto space today. As we move away from rigid work structures and the traditional office environment, We wanted to give these modern workers and businesses a place to solve problems and create new working relationships.
☀️Name : Plant Token
☀️Symbol : PLANT
☀️Blockchain : BSC
☀️Total Supply : 161,211,420 $PLANT
✅Contract Address : 0xdC243F2cF20106B53C7b5A6fd4756C1a920a59DC
🚨TOKENOMICS : 10% Tax On Transactions
💪🏼2% Distributed To All Holders
📣2% To Marketing
🔒2% Liquidity Locked
🌱1% Donated To Charity
☀️1% Surprise Sprouts Lottery
Lottery drawings every week!
🌏Token WebSite: https://www.PlantToken.Co
☀Crypto ️Freelance Marketplace: https://planttoken.work
submitted by GermaineLemke to CryptoMarsShots [link] [comments]
2021.10.25 10:11 CryptoPlayerNoe 💀💉 NoVax (NVX) 💉💀
TIRED OF PUPPIES 🐶?!?!
JOIN THE REVOLUTION 💪🏻
💀💉 NoVax (NVX) 💉💀
Site: nov.ax Telegram: t.me/NVXofficial
Pre-sale rounds (3.5bi NVX) 💎 22-24 October 28-31 October
ICO (10bi NVX) 🍾🍾🍾 4 November (Guy Fawkes' day)
INFO Rewards to holders: 6% Burn Tax: 1% Transaction Tax: 1%
📧 Contact Us: firstname.lastname@example.org
PRE-SALE link: https://cointool.app/ido/exchange?id=236b2176712555242376772076572677712022252072272b2b21262b51572a232621242b502b2b2657276f2625
submitted by CryptoPlayerNoe to cryptomooncum [link] [comments]
2021.10.25 10:11 Opposite-Vegetable88 🐶 DOGEMOON🌛 Just Launched | CoinMarketCap and Coingecko JUST Swapped 🚀| Successfully done audit by Solidity Finance 🤑 x1000 Gem
BIG IMPORTANT NEWS - Coinmarketcap stealth swap finally completed! Huge marketing campaings incoming 🤑
🔥Dogemoon is a passive yield mechanic charity token with Charities partnetship around the world!
Heavy promos are coming After stealth swap on Coinmarketcap and Coingecko, which is done a few HOURS ago, so there is a chance to get in really early!!! 😏
DogeMoon is programmed to reward holders while at the same time increasing liquidity. 🤞
🚨Monthly donations to charities will be decided by community. These charities will help tackle real life issues around the world! 🚨
Transparent and trustworthy team who show honesty while also showing proof of everything going on behind the scenes to ensure complete trust from community 😎
🤫Solidity Finance Audit to ensure contract is safe for our investors🤫
💎Social media influence! 12,000 followers on Twitter and 7000 members in telegram 💎
😝Multisig contract which means marketing funds cannot be removed without the whole team signing each transaction😝
💼Polite and professional team with active mods💼
👏🏻Coming together is the beginning, staying together is progress and working together is success 👏🏻
Tax on trasnsaction - 10%
• 2% tax for Marketing & charity donations automatically turned into BNB to ensure no mass sell off
• 7% Redistributed to All Holders
• 1% added to Liquidity
💰 Shill Campaign
💰 Coinhunt, Coinsniper & Other
💰 Poocoin Adds
💰 Reddit CMS & other crypto trending posts
💰 Google Ads
💰 CoinMarketCap - Stealth swap (ALREADY DONE RIGHT NOW 🤑)
💰 Coingecko - Stealth swap (already done! 😏)
💰 Crypto influencers marketing push
💰 Coinsniper ads coming
💰 Coinhunt advertisment
💰 Running ads on different platforms
💰 Dogemoon Merchandise
💰 IOS/Android Application
💰 Exchange Listings
Buy Now: https://pancakeswap.finance/swap?outputCurrency=0x4269b5765792db6a75add77702abd8ea11f246e6
Renounced Ownership: https://bscscan.com/token/0x4269b5765792db6a75add77702abd8ea11f246e6#readContract
Liquidty locked: https://deeplock.io/lock/0xE64739F8eC71d93c68E643AfBBE08eCfC1C9cAd6
submitted by Opposite-Vegetable88 to SatoshiBets [link] [comments]
2021.10.25 10:11 PurpleStarr9 Was laughing in my sleep and I don’t remember what I was dreaming about. Weird.
2021.10.25 10:11 Automatic_Delay725 ریپیت تورو قران بزار
|submitted by Automatic_Delay725 to TheRiBiTy [link] [comments]|
2021.10.25 10:11 Rackbaw Quieter Than Silence - Quieter Than Silence
|submitted by Rackbaw to fakealbumcovers [link] [comments]|
2021.10.25 10:11 backstreetatnight Monzo Bus
|submitted by backstreetatnight to monzo [link] [comments]|
2021.10.25 10:11 Good1emob PrimeTime iptv
|submitted by Good1emob to iptvsellers [link] [comments]|
2021.10.25 10:11 jy0809 I think I'm finally moving on
It's been 17 days since we've broken up. I think I finally accepted it and I've been moving on. I'm thinking about you less and less each day. I no longer wonder if you're online and I don't have the urge to text you anymore. I'm also starting to forget the memories that we've had together. I'm slowly forgetting how you look like too. It feels bitter-sweet to be reminded of our times. I look back at them with fondness and it brings a smile to my face. I'm no longer crying and wallowing in sadness, I'm slowly getting back to my feet and I've been enjoying my own company too. I just hope you're at a better place right now and that you've been putting yourself together and working towards your goals and future. If I bump into you, I will only smile and wave and small talk about the weather. I no longer crave for us to get back together. I just wanted to write this letter to tell you that I've been doing better.
Time has really healed me and I hope it has healed you too.
submitted by jy0809 to UnsentLetters [link] [comments]